强制类型转换,用到原反补码
原码
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
通过一个字节,也就是8个二进制位表示+7和-7
0(符号位) 0000111
1(符号位) 0000111
反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码
正数的补码与其原码相同;负数的补码是在其反码的末位加1
实例
一、原码,最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小
左边是最高位,右边是最低位
+7:
0 0000111 (1*2^2 + 1*2^1 + 1*2^0 = 4 + 2 + 1)
-7
1 0000111
8个1:11111111(先不分正负数) = 255
7个1:1111111(先不分正负数) = 127
二、反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
+7:0 0000111(原码)
+7:0 0000111(反码)
-7:1 0000111(原码)
-7:1 1111000(反码)
三、补码
正数的补码与其原码相同;负数的补码是在其反码的末位加1
+7:0 0000111(原码)
+7:0 0000111(反码)
+7:0 0000111(补码)
-7:1 0000111(原码)
-7:1 1111000(反码) + 1
-7:1 1111001(补码)
总结:正数的原码反码补码是一样,