机器级别表示有符号和无符号整数

时间:2013-12-18 10:17:45

标签: c++

我说的如下:

  • unsigned int的变量取整个32位表示非负整数使用二进制补码。所以它可以容纳的整数范围是从0到(2 ^ 32) - 1。

  • int的变量取整数32位表示整数使用二进制补码。所以它可以容纳的整数范围是 - (2 ^ 31)到(2 ^ 31) - 1.

e,我说在一个字大小为32位的机器的情况下。

1 个答案:

答案 0 :(得分:6)

大部分时间都可能如此。但是,C标准只要求int为有符号整数,大小至少为16位,unsigned int为无符号整数,大小至少为16位。

请参阅:http://en.wikipedia.org/wiki/C_data_types

特别是:

  

int类型应该是目标处理器最有效的整数类型。这允许很大的灵活性:例如,所有类型都可以是64位。但是,几种不同的整数宽度方案(数据模型)很受欢迎。这是因为数据模型定义了不同程序的通信方式,在给定的操作系统应用程序界面中使用了统一的数据模型。