我的教科书(Patterson,第5版,计算机组织)中有两句话我没得到:
第一:
Two的补码取自n位数字和n位负数的无符号和为2 ^ n的规则而得名。因此,数字x的取反或补码为2 ^ n-x或“ 2的补码”。
说我有一个4位数字2 = 0010 它为负= -2 = 1110
如果我添加它们,我得到10000(这是溢出吗?这很不好吗?)16对吗?而未签名的1110是14?那是那句话在说什么?
和
两个补码,符号和大小的第三个替代表示形式称为一个补码。补码的负数是通过将0到1以及1到0或x的每一位取反而得出的。由于x的补码为2 ^ n-x-1,因此该关系有助于说明其名称。
那是什么意思?您能举个例子来帮助我了解为什么这样命名吗?
假设我们的二进制表示形式为2:
2 = 0000 0000 0000 0000 0000 0000 0000 0010
一个人的补语是:
-2 = 1111 1111 1111 1111 1111 1111 1111 1101
是负面的吗?如果是这样,2 ^ n-x-1怎么样?
我理解两个人的补语:
将每个0到1和每个1到0简单地反转,然后将一个加到结果中。此快捷方式基于以下观察:数字和其倒数表示的总和必须为111 ...(其中的32个)111,代表-1。
所以2 = 0000 0000 0000 0000 0000 0000 0000 0010
如果我们否定2:
1111 1111 1111 1111 1111 1111 1111 1101
并添加1:
1111 1111 1111 1111 1111 1111 1111 1110
= -2
但是我对自己的补语有些困惑。不加1就是二的补码吗?