C程序设计语言 2.9 按位运算符

C语言提供了6个位操作运算符。这些运算符只能作用于整型操作数

&  按位与(AND)
|  按位或(OR)
^  按位异或(XOR)
<<  左移
>>  右移
~  按位求反

1&0为0,1&1为1,0&0为0
1|0为1,1|1为1,0|0为0
11为0,00为0,1^0为1

x<<2表示将x的值左移2位,右边空出的2位用0补齐,该表达式等价于对左操作数乘以4(类比10进制)
在对无符号值进行右移时,左边空出的部分用0补齐,当对有符号数进行右移时,某些机器将对左边空出的部分用符号位填补(即"算术移位"),而另一些机器则对左边空出的部分用0填补(即"逻辑移位")。

一元运算符~用于求整数的二级制反码,即将操作数各二进制位上的1变为0,0变为1.

你可能感兴趣的:(C程序设计语言 2.9 按位运算符)