二进制:位运算左移、右移、无符号右移 、与 、或、非、异或、非

位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、与( & ) 、或( | )、非( ~ )、异或( ^ ),非( ~ )

除非运算为一元操作符外,其它的都是二元操作符。

1、左移( << )

将6左移2位:6<<2

0000 0110           然后左移2位后,低位补0:

0001 1000           换算成10进制为24


2、右移( >> ) 

将6右移2位:6>>2

0000 0110           然后右移2位后,高位补0:

0000 0001           换算成10进制为1


3、无符号右移( >>> )

将6无符号右移2位:6>>>2

0000 0110           然后右移2位后,高位补0:

0000 0001           换算成10进制为1

将-6无符号右移2位:-6>>>2

1111 1111 1111 1111 1111 1111 1111 1010   负数都以补码表示,不知道补码的可查看前篇博客

0011 1111 1111 1111 1111 1111 1111 1110   换算成10进制为1073741822    

4、与( & )

第一个操作数的每一位和第二个操作数的每一位对比,如果都是1,那么结果1,否则为0

将6和2与:6 & 2

0000 011

0000 001
-------------
0000 0010       换算成10进制为2


5、或( | )

第一个操作数的每一位和第二个操作数的每一位对比,有一个是1,那么结果1,否则为0

将6和2或:6 | 2

0000 011

0000 001
-------------
0000 0110    换算成10进制为6


6、异或( ^ )

第一个操作数的每一位和第二个操作数的每一位对比,相同为0,否则为1

将6和2异或:6 ^ 2

0000 0110 

0000 0010 
-------------
0000 0100    换算成10进制为4


7、非( ~ )             非是一元操作符

操作数的每一位1变为0,0变为1

将6非运算:~6

0000 0110
1111 1001     换算成10进制为-7

非运算可以简单理解成 ~x = -(x+1) 如:~ -6 = -( -6+1) = 5

编程技术交流QQ群
二进制:位运算左移、右移、无符号右移 、与 、或、非、异或、非_第1张图片

你可能感兴趣的:(数据和二进制)