黑马程序员技术交流社区

标题: 原码、反码、补码的基础概念和计算方法 [打印本页]

作者: 1406046710    时间: 2015-9-16 23:46
标题: 原码、反码、补码的基础概念和计算方法
1、原码、反码、补码的基础概念和计算方法。
①原码:就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制
[+1]原 = 0000 0001 ;[-1]原 = 1000 0001  因为第一位是符号位,所以八进制取值范围就 是-127~127.
②反码:就是原码取反,正数反码就是本身,负数的反码就是在原码基础上符号位不变,其余位取反。
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
③补码:正数补码就是其本身,负数补码是在其原码基础上,符号位不变其他位取反在+1.
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
2、发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0.
3、使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].

作者: jake_liu    时间: 2015-9-16 23:53
总结的不错
作者: 1406046710    时间: 2015-9-16 23:55
jake_liu 发表于 2015-9-16 23:53
总结的不错

谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2