A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   用原码存储不好吗?

9 个回复

倒序浏览
用补码是为了参加运算的
回复 使用道具 举报
计算机做运算时,是以补码进行运算的。
回复 使用道具 举报
    跟着我写的你思考一下
    1 + 1  =  2 ;  这是最基础的运算
   那 1  -  1 是怎么运算的呢?
   1  -  1  =  1  +  (-1)  =   2  ;
  计算机就是这个思路,在计算机通过补码把减法变成了加法
  x补  -   y补    =   x补   +    -y补
回复 使用道具 举报
你的这个问题,珍惜不知道,其实正数的原码反码不码都一样的,只有负数不同,问题应该就在负数上
回复 使用道具 举报
综上,因为负数的存在,导致计算机无法判断是1 还是 -1 参与运算。
回复 使用道具 举报
spruce 中级黑马 2015-9-15 18:58:38
7#
例子  十进制数6   以四位二进制数表示:
+6二进制原码表示为0110   
-6二进制原码表示为1110(负数情况下二进制最高位为1)
+0二进制原码表示为0000   
-0二进制原码表示为1000  
问题出现了,正负0表示不唯一,采用反码表示也会出现这个问题。采用补码则不会有问题
+0二进制补码表示为0000   
-0二进制补码表示为10000,最高位舍去不要,为0000,问题解决。孙鑫Java视频中有。
回复 使用道具 举报
spruce 中级黑马 2015-9-15 19:03:15
8#
还有一个考虑是将减法转化为加法,参见4楼的解释
回复 使用道具 举报
保证数据的唯一性啊
回复 使用道具 举报
这个你得给sun公司打电话问问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马