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

sta*_*mer 1 c++

我正确地说:

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

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

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

And*_*iid 6

大部分时间都可能如此.但是,C标准只需int要是一个至少16位大小的unsigned int有符号整数,并且是一个至少16位大小的无符号整数.

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

特别:

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