有符号的数据表示法(原、反、补)
为什么讲这个概念?
因为计算机在操作的时候,都是采用对应的二进制的补码来进行运算的
原反补都是针对二进制来说的,二进制用字节保存,一个字节保存8个字符
以+7、-7为例子:
00000111
源码:
最高位为符号位,0表示正数,1表示负数
符号位 数值位
+7 0 0000111
-7 1 0000111
反码:
正数的反码与其原码相同,负数的反码符号位不变,其他位取反
符号位 数值位
+7 0 0000111
-7 1 1111000
补码:
正数的补码与其源码相同,负数的补码是在其反码的基础上加1
符号位 数值位
+7 0 0000111
-7 1 1111001
作业:
1、已知源码:10110100B,求补码和反码
2、已知反码:11101101,求源码和补码
测试:将-8+3用计算机计算结果:
1: 将-8和3的源、补、反三个码列出:
-8 源:1 0001000 反:1 1110111 补:1 1111000
3 源反补: 0 0000011
补码相加得到:1 1111011
将这个补码转换成为反码:1 1111010 源码:1 0000101 数字:-5