<<左移
将位数向左移动
如:十进制2左移8位变成512,二进制为10变成10 0000 0000
将位数向左移动
如:十进制2左移8位变成512,二进制为10变成10 0000 0000
代码:
>>右移
将位数向右移动
如:十进制2048右移8位变成8,二进制为1000 0000 0000变成1000
<span style="white-space:pre"> </span>int data = 2 << 8;
<span style="white-space:pre"> </span>System.out.println("左移后的数据为:" + data);
>>右移
将位数向右移动
如:十进制2048右移8位变成8,二进制为1000 0000 0000变成1000
代码:
int data = 2048 >> 8;
System.out.println("右移后的数据为:" + data);
&与运算
两个操作数中位都为1,结果才为1,否则结果为0
如:十进制240&60结果为48,二进制为1111 0000 & 11 1100 结果 11 0000
代码:
int data = 240 & 60;
System.out.println("与运算后的数据为:" + data);
|或运算
两个位只要有一个为1,那么结果就是1,否则就为0
如:252|60结果为252,二进制为1111 0000 | 11 1100 结果 1111 1100
代码:
int data = 252 | 60;
System.out.println("或运算后的数据为:" + data);
~非运算
如果位为0,结果是1,如果位为1,结果是0
详细过程如下:⑴1的补码为0000 0001按位求反后变为1111 1110因为此数为负数,将这个结果从补码变为原码:1、先求反,最高位(符号位)不变:1000 00012、再加1:1000 0010;结果即为-2
^异或运算符
两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子
如:15^2结果为13,二进制为1111 ^ 10 结果 1101
int data = 15 ^ 2;
System.out.println("异或运算后的数据为:" + data);