杨瑾瑜 发表于 2019-9-12 13:21:57

-128的补码不因该是1 0000 0000吗,为什么是1000 0000?

大家好,来自于S1E7第六题E选项的问题。 按照负数的补码三步骤,我得到的是1后面加8个零, 而答案却是1后面加7个零。这是为什么?超过了8位数怎么办

jackz007 发表于 2019-9-12 13:40:52

本帖最后由 jackz007 于 2019-9-12 13:44 编辑

      是二进制的 8 位,一个字节只有 8 位,如果超过就会溢出。

      -128 的十六进制表达是 0x80,二进制表达是 1000 0000。

2164930278 发表于 2019-9-12 17:49:27

当超过一个数据类型能够存放最大的范围时,数值会溢出。

有符号位最高位溢出的区别:符号位溢出会导致数的正负发生改变,但最高位的溢出会导致最高位丢失。

杨瑾瑜 发表于 2019-9-12 23:57:53

jackz007 发表于 2019-9-12 13:40
是二进制的 8 位,一个字节只有 8 位,如果超过就会溢出。

      -128 的十六进制表达是 0x80,二 ...

谢谢你的帮助

杨瑾瑜 发表于 2019-9-12 23:59:12

2164930278 发表于 2019-9-12 17:49
当超过一个数据类型能够存放最大的范围时,数值会溢出。

有符号位最高位溢出的区别:符号位溢出会导致数 ...

谢谢啦,讲明白了
页: [1]
查看完整版本: -128的补码不因该是1 0000 0000吗,为什么是1000 0000?