原码
*就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
*通过一个字节,也就是8个二进制位表示+7和-7
*0(符号位) 0000111
*1(符号位) 0000111
反码
*正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码
*正数的补码与其原码相同,负数的补码是在其反码的末位加1。
反码:
0 0000111 +7(反码)
1 0000111 -7(原码)
1 1111 000 -7(反码)
补码:
0 0000111 +7(补码)
1 1111000 -7(反码)
1 1111001 -7(补码)
运算都是以补码的形式运算
反码就是为了求补码的
0 0000111 +7(补码)
1 1111001 -7(补码)
--------------------
00000000
练习
A:已知原码求补码
0b10110100
1 0110100(原码)
1 1001011(反码)
0 0000001(+1)
-----------------
1 1001100(补码)
B:已知补码求原码
0b11101110
1 1101110(补码)
0 0000001(-1)
-----------------
1 1101101(反码)
1 0010010(原码)