首先强调:
char、int、long、long long、float、double等数据类型的取值范围跟他们的字节大小有关,而字节大小又跟平台的位数有关,下表列出char、int、long、long long、float、double等数据类型在不同平台的字节大小:
C类型 |
16位机器 |
32位机器 |
64位机器 |
char |
1 |
1 |
1 |
short |
2 |
2 |
2 |
int |
2 |
4 |
4 |
long |
4 |
4 |
8 |
long long |
N/A |
8 |
8 |
char*、int*等指针型 |
2 |
4 |
8 |
float |
4 |
4 |
4 |
double |
8 |
8 |
8 |
以32位机器为例说明各个数据类型的取值范围:
在C语言中有基本数据类型一般分为有符号整型、无符号整型、浮点型和指针型。
(1)有符号整数类型
类型名称 |
字节数 |
取值范围 |
signed char |
1 |
-2^7到2^7-1 |
short int或short |
2 |
-2^15到2^15-1 |
int |
4 |
-2^31到2^31-1 |
long int或long |
4 |
-2^31到2^31-1 |
long long int或long long |
8 |
-2^63到2^63-1 |
(2)无符号整数类型
类型名称 |
字节数 |
取值范围 |
usigned char |
1 |
0到2^8-1 |
usigned short int或usigned short |
2 |
0到2^16-1 |
usigned int |
4 |
0到2^32-1 |
usigned long int或usigned long |
4 |
0到2^32-1 |
usigned long long int或usigned long long |
8 |
0到2^64-1 |
(3)浮点型
类型名称 |
字节数 |
取值范围 |
float |
4 |
-3.40E+38到+3.40E+38(精确到6位小数) |
double |
8 |
-/+1.7e308(精确到15位小数) |
long double |
12 |
-/+1.19e4932(精确到18位小数) |