当前位置:   article > 正文

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

二进制数 移位

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/175941
推荐阅读
相关标签
  

闽ICP备14008679号