位运算符
值得注意的是,在进行位运算时,都是向右对齐。
& 按位与:如果两个相应的二进制位都为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