位运算
原码 储存的二进制码
反码 对存储值的每一位都取反
补码 正整数: 补码 = 原码
负整数: 补码 = 反码+1
-32 的原码:
1000 0000 0000 0000 0000 0000 0010 0000
反码
1111 1111 1111 1111 1111 1111 1101 1111
补码
1111 1111 1111 1111 1111 1111 1110 0000
模运算中,因为 - n 和 + 模-n等价 ,所有将负数 -n存储为 模-n的模式进行计算,再根据计算后结果中的符号位将补码换算为原码给出显示
如
10
0000 1010
9
0000 1001
8
0000 1000
0
0000 0000
-1
1000 0001
1111 11110
1111 1111
-2
1000 0010
1111 1101
1111 1110
-8
1000 1000
1111 0111
1111 1000 0111 1100 124
如 - 8 + 9
即 1111 1000 + 0000 1001 = (1)0000 0001 为正值
-128 设置为 1000 0000
127
0111 1111
1111 1111
1111 1110
1000 0001
~按位取反