【发布时间】:2012-02-13 14:11:36
【问题描述】:
我仍然没有找到为什么最小的有符号负数没有等效的有符号正数的原因? 为简单起见,我的意思是 3 位二进制数 100是-4?但我们不能有一个正数的签名格式,因为我们不能。它溢出了。 那么我们如何知道二进制补码 1000 是 -4 1000 0000 是 -128 等等?我们没有原始的正数
【问题讨论】:
-
因为要数0。[-4,-1]包含4个数字,[0,3]包含4个数字,一共8个,3位二进制数有2个3 (=8) 种可能组合的幂。
-
什么?抱歉,在 2^3 = 8 种可能的组合之前,我不明白您写的任何内容。
-
您有 4 个负数、3 个正数和 1 个零。共 8 个!
-
[-4,-1] 是数字 -4、-3、-2 和 -1 的集合。 [0,+3] 是数字 0、1、2 和 3 的集合。总区间的每一半都有 4 个数字,这就是分配给 3 位表示的所有 8 个插槽。
-
为了记录,这也在聊天中讨论过:chat.stackoverflow.com/transcript/message/2401301#2401301
标签: c++ c binary signed twos-complement