1

我正在阅读一些汇编教程,其中解释了有符号整数和无符号整数以及它们在计算机内存中的表示形式之间的区别。

我记得在数字的开头有一些类似的东西,所以它告诉整数是无符号的还是有符号的。

如果有人知道,请回答。

4

5 回答 5

2

有符号数有很多种可能的表示形式,最常见的是二进制补码。

于 2010-03-04T18:23:26.477 回答
2

维基百科关于有符号数表示的页面显示了有符号和无符号整数值的最常见的内存实现。

二进制补码是最常见的表示。

于 2010-03-04T18:24:44.317 回答
2

MSB 不判断号码是否有签名;在有符号数中,它表示该数是否为负数。在无符号数字中,它只是 MSB。它是确定一个数字是有符号还是无符号的程序。

于 2010-03-04T18:25:28.330 回答
1

呵呵。棘手的问题。有符号和无符号整数的表示完全相同。看着记忆,你永远无法区分它们。它源于冯诺依曼原理之一。那么区别在哪里呢?不同之处在于它们的解释方式。如果变量是有符号的,编译器使用有符号整数的命令。此外,如果我们知道那个数字是有符号的,那么它的第一位就告诉我们它是符号。转换~i + 1以两种方式作为(c 语法)完成

于 2010-03-04T18:26:54.343 回答
0

有许多可能的表示形式,每一种都取决于您计算机的组织。最著名的是

在这两种表示中,您可以测试第一个(最重要的)位以找出该数字是正数(通常关闭)还是负数(位打开)。也就是说,如果您将数字视为已签名。如果您告诉编译器将此类数字视为无符号数,则符号位将用作数据(使数据类型的最大范围翻倍)。

于 2010-03-04T18:27:26.797 回答