您的位置:首页 > 编程语言 > Java开发

JavaSE 学习参考:位运算符

2017-01-25 00:00 197 查看




Java位运算符有:&按位与,|按拉或,^按位异或,~按位取反,<<左移位,>>右移位,>>>右移位。下面以23和11作为操作数来演示:

运算符
规则
十进制
二进制
&按位与
两个操作数的二进位都为1结果为,否则为0
23
0001 0111
11
0000 1011
3
0000 0011
|按位或
两个操作数的二进位只要有1位为1结果为,否则为0
23
0001 0111
11
0000 1011
31
0001 1111
^按位异或
两个操作数的二进位相同为0,不同为1
23
0001 0111
11
0000 1011
28
0001 1100
~按位取反
是一个单目运算符,结果是将该数的二进制位取反
23
0001 0111
-24
1110 1000
<<左移位
将左操作数二进制位左移右操作数位数
23
0001 0111
2
92
0101 1100
>>右移位
将左操作数二进制位右移右操作数位数
23
0001 0111
2
5
0000 1011
>>右移位
将左操作数二进制位右移右操作数位数
23
0001 0111
2
5
0000 1011
>>>右移位
将左操作数二进制位右移右操作数位数,左边符号位以0补上
-24
1 {27个1} 1110 1000
1
2147483636
0 {27个1} 1111 0100
示例1:位运算符

package com.bwf.sample;
public class Demo1 {

public static void main(String[] args) {
int a=23,b=11;
int c;
c=a&b;
System.out.println(String.format("%d & %d = %d", a,b,c));
c=a|b;
System.out.println(String.format("%d | %d = %d", a,b,c));
c=a^b;
System.out.println(String.format("%d ^ %d = %d", a,b,c));
c=~a;
System.out.println(String.format("~%d = %d", a,c));
c=a<<2;
System.out.println(String.format("%d << 2 = %d", a,c));
c=a>>2;
System.out.println(String.format("%d >> 2 = %d", a,c));
c=-24>>>1;
System.out.println(String.format("%d >>> 2 = %d", a,c));
}
}

执行的结果如下图所示:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 关系运算符 == !=