正整数如何存储在计算机内存中?它们的 2 的补码是作为负整数存储在内存中还是它们的二进制等价物?

问题描述

对于负整数,它们的 2 的补码存储在内存中。我对正整数感到困惑。它们直接以二进制格式存储,或者也以 2 的补码存储。有符号和无符号请注明。

解决方法

二进制补码作为一种有符号二进制表示形式用于计算。

为此目的保存了一位。所以一个正数和一个负数在内存中存储的完全相同,只是一个位表示它是否为正。

内存中的正 127: 127 -> 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1

内存中的负 127: -127 -> 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1

如您所见,如果 MSB(最高有效字节)包含 1,则表示它是负数,所有字节都反转并且整数加一。