C语言数据类型
整数类型
下表列出了关于标准整数类型的存储大小和取值范围:
类型 | 存储大小 | 取值范围 | 占位符 |
---|---|---|---|
short(有符号短整型) | 2字节(16位) | 最小值=--32768 最大值=32767 | %hd |
unsigned short(无符号短整型) | 2字节(16位) | 最小值=0 最大值=65535 | %hu |
int(有符号整型) | 4字节(32位) | 最小值=-2147483648 最大值=2147483647 | %d |
unsigned int(无符号整型) | 4字节(32位) | 最小值=0 最大值=4294967295 | %u |
long(有符号长整型) | 4字节(32位) | 最小值=-2147483648 最大值=2147483647 | %ld |
unsigned long(无符号长整型) | 4字节(32位) | 最小值=0 最大值=4294967295 |
%lu |
long long(有符号超长整型) | 8字节(64位) | 最小值=-9223372036854775808 最大值=9223372036854775807 | %lld |
unsigned long long(无符号超长整型) | 8字节(64位) | 最小值=0 最大值=18446744073709551615 |
%llu |
下面这段代码也可以查看各种整型类型的存储大小和取值范围:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("%zd %hd %hd %hu\n", sizeof(short), SHRT_MIN, SHRT_MAX, USHRT_MAX);
printf("%zd %d %d %u\n", sizeof(int), INT_MIN, INT_MAX, UINT_MAX);
printf("%zd %ld %ld %lu\n", sizeof(long), LONG_MIN, LONG_MAX, ULONG_MAX);
printf("%zd %lld %lld %llu\n", sizeof(long long), LLONG_MIN, LLONG_MAX, ULLONG_MAX);
return 0;
}
浮点数类型
下表列出了关于标准浮点数类型的存储大小和取值范围:
类型 | 存储大小 | 取值范围 | 有效精度 | 占位符 |
---|---|---|---|---|
float(单精度浮点型) | 4字节(32位) | 最小值=-3.4e+38 最大值=3.4e+38 | 6~7 | %f |
double(双精度浮点型) | 8字节(64位) | 最小值=-1.8e+308 最大值=1.8e+308 | 15~16 | %lf |
long double(长双精度浮点型) | 16字节(128字节) | 最小值=-1.2e+4932 最大值=1.2e+4932 | 18~19 | %Lf |
下面这段代码也可以查看各种浮点类型的存储大小和取值范围:
#include <stdio.h>
#include <float.h>
int main()
{
printf("%zd %e %e\n", sizeof(float), FLT_MIN, FLT_MAX);
printf("%zd %e %e\n", sizeof(double), DBL_MIN, DBL_MAX);
printf("%zd %e %e\n", sizeof(long double), LDBL_MIN, LDBL_MAX);
return 0;
}
字符类型
下表列出了关于标准字符类型的存储大小和取值范围:
类型 | 存储大小 | 取值范围 | 占位符 |
---|---|---|---|
char(字符型) |
1字节(8位) | 最小值=-128 最大值=127 或 最小值=0 最大值=255 | %c |
signed char(有符号字符型) | 1字节(8位) | 最小值=-128 最大值=127 | %c |
unsigned char(无符号字符型) | 1字节(8位) | 最小值=0 最大值=255 | %c |
下面这段代码也可以查看字符类型的存储大小和取值范围:
#include <stdio.h>
#include <limits.h>
int main()
{
printf("%zd %hhd %hhd %hhu\n", sizeof(char), CHAR_MIN, CHAR_MAX, UCHAR_MAX);
return 0;
}
ASCLL码表:
Bin(二进制) |
Oct(八进制) |
Dec(十进制) |
Hex(十六进制) |
缩写/字符 |
解释 |
---|---|---|---|---|---|
0000 0000 |
00 |
0 |
0x00 |
NUL(null) |
空字符 |
0000 0001 |
01 |
1 |
0x01 |
SOH(start of headline) |
标题开始 |
0000 0010 |
02 |
2 |
0x02 |
STX (start of text) |
正文开始 |
0000 0011 |
03 |
3 |
0x03 |
ETX (end of text) |
正文结束 |
0000 0100 |
04 |
4 |
0x04 |
EOT (end of transmission) |
传输结束 |
0000 0101 |
05 |
5 |
0x05 |
ENQ (enquiry) |
请求 |
0000 0110 |
06 |
6 |
0x06 |
ACK (acknowledge) |
收到通知 |
0000 0111 |
07 |
7 |
0x07 |
BEL (bell) |
响铃 |
0000 1000 |
010 |
8 |
0x08 |
BS (backspace) |
退格 |
0000 1001 |
011 |
9 |
0x09 |
HT (horizontal tab) |
水平制表符 |
0000 1010 |
012 |