1.二进制的最高位是符号位:0表示正数,1表示负数
1===》(0000 0001) -1(1000 0001)
2.正数的原码,反码,补码都一样
3.负数的反码=它的原码符号位不变,其他位取反(0->1,1->0)
1===》原码(0000 0001) 反码(0000 0001) 补码(0000 0001)
-1===》原码(1000 0001)反码(1111 1110) 补码(1111 1111)
4.负数的补码=它的反码+1
5.0的反码,补码都是0
6.在计算机运算的时候,都是以补码的方式来运算的
位运算符和移位运算符
位运算符案例分析:
2&3=2
0000 0010
0000 0011
--------------
0000 0010
2|3=3
0000 0010
0000 0011
--------------
0000 0011
2^3=1
0000 0010
0000 0011
--------------
0000 0001
-2^2= -4
-2的原码 1000 0010 =>反码 1111 1101 => 补码 1111 1110
2 的补码 0000 0010
1111 1110
0000 0010
--------------
1111 1100(负数的结果需要在转回去)
1111 1100 补码 =>反码 1111 1011 =>原码 0000 0100 最后结果等于-4
移位运算符案例
>>,<< 右移和左移,运算规则
右移运算符 >>:低位溢出,符号位不变,并用符号位补溢出的高位
左移运算符 <<:符号位不变,低位补0
a := 1 >> 2 0000 0001 溢出2位 0000 0000 结果等于0
c := 1 << 2 0000 0001 左移2位 0000 0100 结果等于4