在C++中,常用的位运算符号及其说明如下:

  1. 按位与(AND)&
    两个对应位都为1时,结果位才为1,否则为0。
    例:3 & 5 → 二进制 0011 & 0101 = 0001 → 结果为 1

  2. 按位或(OR)|
    两个对应位只要有一个为1,结果位就为1。
    例:3 | 5 → 二进制 0011 | 0101 = 0111 → 结果为 7

  3. 按位异或(XOR)^
    两个对应位不同时结果为1,相同时为0。
    例:3 ^ 5 → 二进制 0011 ^ 0101 = 0110 → 结果为 6

  4. 按位取反(NOT)~
    对操作数的每一位取反(0变1,1变0)。
    例:~5 → 二进制 ~0101 = 1010(补码表示,具体值取决于数据类型位数)

  5. 左移<<
    将操作数的所有位向左移动指定的位数,右侧补0。
    例:5 << 1 → 二进制 0101 << 1 = 1010 → 结果为 10(相当于乘以2的1次方)

  6. 右移>>
    将操作数的所有位向右移动指定的位数,左侧补符号位(正数补0,负数补1)。
    例:5 >> 1 → 二进制 0101 >> 1 = 0010 → 结果为 2(相当于除以2的1次方,向下取整)

这些位运算主要用于直接操作整数的二进制位,在底层编程、算法优化等场景中非常常用。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐