首页 > 解决方案 > 如何用二进制表示负数

问题描述

我在一个网站上阅读了这一段,我对为什么100000等于 -32 感到困惑。

有符号二进制数的一个警告是溢出,其中加法或减法问题的答案超过了可以用分配的位数表示的大小。请记住,符号位的位置从问题的一开始就固定了。对于最后一个示例问题,我们使用五个二进制位来表示数字的大小,最左边(第六)位作为负权重或符号位。用 5 位来表示幅度,我们有 25 个表示范围,即从 0 到最大值的 32 个整数步长。这意味着我们可以表示高至 +31 (011111) 或低至 -32 (100000) 的数字。

为什么 -32 等于 100000。是符号幅度格式还是 2s 补码?

标签: twos-complement

解决方案


有符号二进制 - 最左边的位是负数。

  **5** 4 3 2 1 0
**-2** 2 2 2 2 2 

-2 到 5 号是 32。


推荐阅读