1、short、int、long类型
short、int、long类型实际上都是带符号的类型,若要将其转换成无符号类型,那么直接在这些类型前面加上unsigned,带符号就是可以表示负数,0,正数,而无符号的只能表示正数。
类型 | 字宽 | 取值范围 |
unsigned short | 2 | 0~65535 |
short | 2 | -32768~32767 |
signed short | 2 | -32768~32767 |
unsigned int | 4 | 0~65535 |
int | 4 | -32768~32767 |
signed int | 4 | -32768~32767 |
unsigned long | 4 | 0~4294967295 |
long | 4 | 0~4294967295 |
signed long | 4 | -2147483648~2147483647 |
注意:1)在32位的计算机下
2)如果将一个整数赋值给一个浮点类型,那么如果整数的值超过了浮点类型的容量上限,那么会出现精度缺失。
2、char、unsigned char、signed char 类型
字符串类型有三种,但是表现形式只有两种:带符号和不带符号。char类型的表现形式其实根据实际的编译器而不一样。
数据类型 | 字宽 | 取值范围 |
unsigned char | 1 | 0~255 |
char | 1 | -127~128(根据不同编译器) |
signed char | 1 | -127~128 |
3、bool类型
布尔类型有两个值true和false,非0为真,0为假。将布尔类型赋值给非布尔类型,得到的结果:若真,则为1,若假,则为0;
注意:类型所能表示的取值范围决定了转换的过程。
4、切勿将带符号类型和无符号类型混用
表达式中既有无符号类型又有带符号类型,那么带符号类型会被自动转换成无符号类型。