4.9 技术解惑

4.9.1 在C语言中无符号整型变量和有符号整型变量的定义

在C语言中无符号整型变量和有符号整型变量在同一系统中所占用的数据宽度是一样的。但不同的是以下几点。

❑ 有符号整型变量把数据的最高位作为符号位使用,因此它能表示数的正负。16位变量的表示范围为-32368~32367。32位变量的表示范围为-2147483648~2147483647。

❑ 无符号整型变量把数据的最高位仍作为数据位来使用,因此它不能表示负数。16位变量的表示范围为0~65535,32位变量的表示范围为0~429967295。

另外,符号是给编译器使用的。当进行编译时,它会根据是否有符号来决定具体的机器代码指令。实际上,这也同样需要机器代码支持有符号和无符号数据的运算。否则有无符号只会增加机器指令,并无其他意义。

变量相对常量而言是可变的,整型就是整数的形式,这里说的符号并不是ASCII码所表示的所有符号,而是正号、负号,就是常说的+、-。