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



我这样说是否正确:

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

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

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

大多数时候可能是这样。但是,C 标准仅要求 int 是大小至少为 16 位的有符号整数,unsigned int要求是大小至少为 16 位的无符号整数。

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

特别是:

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

最新更新