我说的如下:
unsigned int
的变量取整个32位表示非负整数使用二进制补码。所以它可以容纳的整数范围是从0到(2 ^ 32) - 1。
int
的变量取整数32位表示整数使用二进制补码。所以它可以容纳的整数范围是 - (2 ^ 31)到(2 ^ 31) - 1.
e,我说在一个字大小为32位的机器的情况下。
答案 0 :(得分:6)
大部分时间都可能如此。但是,C标准只要求int
为有符号整数,大小至少为16位,unsigned int
为无符号整数,大小至少为16位。
请参阅:http://en.wikipedia.org/wiki/C_data_types
特别是:
int类型应该是目标处理器最有效的整数类型。这允许很大的灵活性:例如,所有类型都可以是64位。但是,几种不同的整数宽度方案(数据模型)很受欢迎。这是因为数据模型定义了不同程序的通信方式,在给定的操作系统应用程序界面中使用了统一的数据模型。