四种操作 :
与&
或|
非~
异或xor(c++中异或用^表示)
补码:
1 + 1的补码 = 0000000000 <—— 做最高位不进位运算
1 + 1111111111 = 0000000000
1的补码 = 1111111111
以此类推
2的补码 = 1111111110
总结
某个数x + ? = 00000……00 做最高位不进位运算
?即为x的补码
? = ~x + 1
0x3F
0x3F满足:
- 整数的两倍不超过0x7F FF FF FF(int能表示的最大正整数)
- 整数的每8位(每个字节)都是相同的
所以当要把一个数组中的数值初始化成正无穷时,可以用memset(a, 0x3f, sizeof(a)) 给数组中每一个元素赋值 0x3F 3F 3F 3F<