黑马程序员技术交流社区
标题:
计算机中为什么用补码存储数据呢?
[打印本页]
作者:
liuch111
时间:
2015-9-15 11:29
标题:
计算机中为什么用补码存储数据呢?
用原码存储不好吗?
作者:
boboyuwu
时间:
2015-9-15 11:37
用补码是为了参加运算的
作者:
...!!!
时间:
2015-9-15 14:23
计算机做运算时,是以补码进行运算的。
作者:
舒玉琛
时间:
2015-9-15 16:30
跟着我写的你思考一下
1 + 1 = 2 ; 这是最基础的运算
那 1 - 1 是怎么运算的呢?
1 - 1 = 1 + (-1) = 2 ;
计算机就是这个思路,在计算机通过补码把减法变成了加法
x补 - y补 = x补 + -y补
作者:
大头爱傻瓜
时间:
2015-9-15 17:17
你的这个问题,珍惜不知道,其实正数的原码反码不码都一样的,只有负数不同,问题应该就在负数上
作者:
a80C51
时间:
2015-9-15 18:04
综上,因为负数的存在,导致计算机无法判断是1 还是 -1 参与运算。
作者:
spruce
时间:
2015-9-15 18:58
例子 十进制数6 以四位二进制数表示:
+6二进制原码表示为0110
-6二进制原码表示为1110(负数情况下二进制最高位为1)
+0二进制原码表示为0000
-0二进制原码表示为1000
问题出现了,正负0表示不唯一,采用反码表示也会出现这个问题。采用补码则不会有问题
+0二进制补码表示为0000
-0二进制补码表示为10000,最高位舍去不要,为0000,问题解决。孙鑫Java视频中有。
作者:
spruce
时间:
2015-9-15 19:03
还有一个考虑是将减法转化为加法,参见4楼的解释
作者:
zhangcheng0403
时间:
2015-9-15 20:51
保证数据的唯一性啊
作者:
silencea
时间:
2015-9-15 21:13
这个你得给sun公司打电话问问
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2