-
ALL_BITS 是所有的位都为1
- ALL_BITS ^ A
-
2.将A的第bit位(最右边是第0位)设置为1
- A |= 1 << bit 例如bit=3 则1<<bit=1000 则A|1000=1000 1010
-
3.将A的第bit位清0
- A &= ~(1 << bit) 例如bit=1 则~(1<<bit)=1101 则A&1101=1000 0000
-
4.测试第bit位是否为0
(A & 1 << bit) != 0
-
-
-
-
-
-
-
-
-
-
A: 1000 0010 B: 1100 1100
1.对A的所有位取反
5.除了A的最低位的第一个1,其余全部清0 x & ~(x - 1)
6.一个数是2的指数幂当且仅当只有一个bit是1
7.a<<b : 当b>=a所占比特数的时候,C99说,结果是未定义的,这个行为同样适用于Java 和 C#