有符号整数和无符号整数之间的区别是:
Unsigned值可以是一个较大的正数,而不能是负数。 Unsigned版本使用前导位作为值的一部分,而signed版本使用最左边的位来识别数字是正还是负。 有符号整数可以同时包含正数和负数。
还有其他区别吗?
有符号整数和无符号整数之间的区别是:
Unsigned值可以是一个较大的正数,而不能是负数。 Unsigned版本使用前导位作为值的一部分,而signed版本使用最左边的位来识别数字是正还是负。 有符号整数可以同时包含正数和负数。
还有其他区别吗?
当前回答
Unsigned值可以是一个较大的正数,而不能是负数。
Yes.
Unsigned版本使用前导位作为值的一部分,而signed版本使用最左边的位来识别数字是正还是负。
有不同的表示有符号整数的方法。最容易想象的是使用最左边的位作为标志(符号和幅度),但更常见的是2的补位。这两种方法在大多数现代微处理器中都有使用——浮点数使用符号和幅度,而整数算术使用2的补数。
有符号整数可以同时包含正数和负数。
Yes.
其他回答
根据我们在课堂上学到的,有符号整数既可以表示正数也可以表示负数,而无符号整数只能表示非负数。
例如,看一个8位的数字:
无符号值为0到255
带符号的取值范围为-128 ~ 127
在嵌入式系统上编程时,必须使用无符号整数。在循环中,当不需要有符号整数时,使用无符号整数将节省设计此类系统所需的安全。
是的,无符号整数可以存储大的值。 不,有不同的方式来表示正数和负数。 是的,有符号整数可以包含正数和负数。
他只问了签过名和没签过名的。不知道为什么人们要在里面加额外的东西。让我来告诉你答案。
Unsigned:它只包含非负值,即0到255。 Signed:由正负值组成,但格式不同,如 0 ~ +127 -1 ~ -128
这个解释是关于8位数字系统的。
另一个区别是在不同大小的整数之间进行转换时。
例如,如果你从字节流中提取一个整数(简单来说就是16位),使用无符号值,你可以这样做:
i = ((int) b[j]) << 8 | b[j+1]
(可能应该强制转换第二个字节,但我猜编译器会做正确的事情)
对于有符号的值,你必须担心符号扩展,并做:
i = (((int) b[i]) & 0xFF) << 8 | ((int) b[i+1]) & 0xFF