首页 > 解决方案 > 十进制相同二进制整数的有符号负数和正数版本之间的关系是什么?

问题描述

我想先说明这个问题,首先看起来这是 SO 上其他几个问题的重复,但是这些问题的答案都没有回答我的问题,因此我在问它。

解释为正整数的二进制整数与解释为十进制负整数的完全相同的二进制整数之间的关系是什么?我们以整数 5 为例:

5 是 101

-5 是 11111011

11111011 被解释为无符号数时为 251。

问题是,-5 和 251 之间的十进制关系是什么?除了二进制数系统中发生的动作之外,是否存在直接关系?意思是,在十进制中有一些规则,我们可以直接将任何给定的十进制整数映射到十进制整数,当从正转换为负时相同的二进制整数将是,反之亦然?

标签: mathbinaryintegersigned

解决方案


请注意,-5它实际上不是11111011二进制的——即八位的二进制表示。如果你使用不同的位数,你会得到不同的二进制表示。例如,如果您使用 16 位,就像经常做的那样,您会得到1111111111111011,即65531.

这就是关键。在八位中,我们考虑2^8哪个是256。(那个插入符号代表取幂。)然后我们看到它-5由 表示256 - 5

所以最终的答案是这样的:对于一个给定的正整数n,它用b二进制位表示,-n然后这个数字表示为

(2 ^ b) - n

至少,如果位数b足够大的话。明白了吗?可以说的远不止这些,但您最好在一本书或大型网页中阅读更多关于二进制补码表示法的内容。


推荐阅读