黑马程序员技术交流社区

标题: 为什么负零和所占字节能表示最小的负数补码不一样 [打印本页]

作者: cheenbee    时间: 2015-8-9 13:57
标题: 为什么负零和所占字节能表示最小的负数补码不一样
    占4个字节int型  0 的二进制补码 是 00000000000000000000000000000000
  占4个字节int型整数能表示最小的负数为-2^31 == -2147483648,
此数的二进制补码却是 10000000000000000000000000000000
前面已知该数是用-0的补码表示,为什么两个补码不一样?这就是人为规定?

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


作者: cheenbee    时间: 2015-8-9 13:58
好流弊的样子,反证法
作者: 飓风少年    时间: 2015-8-9 14:17
补码,反码这些东西不用过于纠结,因为用到的时候很少
作者: cheenbee    时间: 2015-8-9 14:23
飓风少年 发表于 2015-8-9 14:17
补码,反码这些东西不用过于纠结,因为用到的时候很少

我要做全栈,必须这样要求自己
作者: 墨琰    时间: 2015-8-9 22:03
楼主威武 推荐你搞嵌入式吧




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