上QQ阅读APP看书,第一时间看更新
1.13 signed和unsigned
还有一对类型限定符是signed和unsigned,它们用于限定char类型和任何整型变量的取值范围。
signed表示该变量是带符号位的,而unsigned表示该变量是不带符号位的。带符号位的变量可以表示负数;而不带符号位的变量只能表示正数,它的存储空间也就相应扩大1倍。默认所有的整型变量都是signed的,也就是带符号位的。
加上signed和unsigned限定符,4种整型就变成了以下8种。
·[signed] short [int]。
·unsigned short [int]。
·[signed] int。
·unsigned int。
·[signed] long [int]。
·unsigned long [int]。
·[signed] long long [int]。
·unsigned long long [int]。
请看下面的例子:
注意:
printf()函数用%u表示输出无符号整数。
程序实现如下:
如果给一个声明为无符号类型的短整型变量赋值一个负数,那么程序就不能如我们所愿地实现了,那么这里为何打印的是66535呢?大家不妨思考一下。