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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    占4个字节int型  0 的二进制补码 是 00000000000000000000000000000000
  占4个字节int型整数能表示最小的负数为-2^31 == -2147483648,
此数的二进制补码却是 10000000000000000000000000000000
前面已知该数是用-0的补码表示,为什么两个补码不一样?这就是人为规定?

答:可以这么理解,计算机中规定没有正负零之分,在此用一个字节表示int型的二进制,即负零的补码也就是正零的补码:00000000
    ​反推:既然零没有正负之分,负零就是正零,原码反码补码一样,但由于负零却又实际存在,人为规定用负零表示最小的负数,即此最小的负​数的原码表示为:00000000,转成补码即为:10000000

4 个回复

倒序浏览
好流弊的样子,反证法
回复 使用道具 举报
补码,反码这些东西不用过于纠结,因为用到的时候很少
回复 使用道具 举报
飓风少年 发表于 2015-8-9 14:17
补码,反码这些东西不用过于纠结,因为用到的时候很少

我要做全栈,必须这样要求自己
回复 使用道具 举报
楼主威武 推荐你搞嵌入式吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马