C++中位运算
·
在C++中,常用的位运算符号及其说明如下:
-
按位与(AND):
&
两个对应位都为1时,结果位才为1,否则为0。
例:3 & 5→ 二进制0011 & 0101 = 0001→ 结果为1 -
按位或(OR):
|
两个对应位只要有一个为1,结果位就为1。
例:3 | 5→ 二进制0011 | 0101 = 0111→ 结果为7 -
按位异或(XOR):
^
两个对应位不同时结果为1,相同时为0。
例:3 ^ 5→ 二进制0011 ^ 0101 = 0110→ 结果为6 -
按位取反(NOT):
~
对操作数的每一位取反(0变1,1变0)。
例:~5→ 二进制~0101 = 1010(补码表示,具体值取决于数据类型位数) -
左移:
<<
将操作数的所有位向左移动指定的位数,右侧补0。
例:5 << 1→ 二进制0101 << 1 = 1010→ 结果为10(相当于乘以2的1次方) -
右移:
>>
将操作数的所有位向右移动指定的位数,左侧补符号位(正数补0,负数补1)。
例:5 >> 1→ 二进制0101 >> 1 = 0010→ 结果为2(相当于除以2的1次方,向下取整)
这些位运算主要用于直接操作整数的二进制位,在底层编程、算法优化等场景中非常常用。
更多推荐


所有评论(0)