关于二进制的位运算符 & , | , ^ , ~, << , >>

值得注意的是,在进行位运算时,都是向右对齐。

& 按位与:如果两个相应的二进制位都为1,那么结果为1,否则为0。

例如 100110&01001=000000=0   1101001&1101000=1101000

|   按位或:如果两个相应的二进制位中只要有一个为1,结果就为1。(类似于逻辑运算符中的或)

例如 100110 | 01001=101111

^  按位异或:如果两个相应的二进制位中,如果数字相同,则结果为0,否则为1

例如 1^1=0  1^0=1 00001001^00000101=00001100=1100

~ 取反:字面意思,把参与运算的一个二进制数按位求反(将原有的1变为0,将原有的0变为1)

例如 ~111111=000000=0  ~101010=010101=10101

<< 左移:将运算数的各二进制位向左移若干位

例如 1<<4=10000   001100<<2=00110000

>> 右移:将运算数的各二进制位数向右移若干位(或理解为舍去末尾的若干位)

例如  00011101>>2=000111   111>>1=11

版权声明:本文为ysomething原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ysomething/p/12901667.html