表格 1 整型数据常见的储存空间和值的范围
类型 | 字节数 | 取值范围 |
Int(基本整型) | 2 | -32768~32767,即-2^15~(2^15-1) |
4 | -2147483648~2147483647,即-2^31~(2^31-1) | |
Unsigned int(无符号整型) | 2 | 0~65535,即0~(2^16-1) |
4 | 0~4294967295,即0~(2^32-1) | |
Short(短整型) | 2 | -32768~32767,即-2^15~(2^15-1) |
Unsigned short(无符号短整型) | 2 | 0~65535,即0~(2^16-1) |
Long(长整型) | 4 | -2147483648~2147483647,即-2^31~(2^31-1) |
Unsigned long(无符号长整型) | 4 | 0~4294967295,即0~(2^32-1) |
Long long(双长型) | 8 | -9223372036854775808~9223372036854775807,即-2^63~(2^32-1) |
Unsigned long long(无符号双长型) | 8 | 0~18446744073709551615,即0~(2^64-1) |
*sizeof是测量类型霍变量长度的运算符,例如
int c=sizeof(int);
printf("%d",c);
输出:4
在实际应用中,有的数据的范围常常只有正值,那么我们可以将这种变量定义为“无符号”类型,因此,4种整型数据(int、short、long、long long)其实可以扩展为8种,每种分别由signed和unsigned两种类型。
有符号整型数据存储单元中最高位代表符号(0为正,1为负);
无符号整型数据(指定为unsigned的)存储单元中全部二进位都用作存放数值本身,而没有符号。所以无符号型变量不能存放负数,相对的,能够存放的正数的范围比有符号数的正数范围大一倍。
表格 2 浮点型数据的有效数字
类型 | 字节数 | 有效数字 | 数值范围(绝对值) |
Float(单精度) | 4 | 6 | 0以及1.2e-38 ~ 3.4e38 |
Double(双精度) | 8 | 15 | 0以及2.3e-308 ~ 1.7e308 |
long double(长双精度) | 8 | 15 | 0以及2.3e-308 ~ 1.7e308 |
16 | 19 | 0以及3.4e-4932 ~ 1.1e4932 |
格式化规定符
——————————————————————————
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法 (系统自动选择f或e格式输出)
——————————————————————————
- 域宽:即输出数据的所占列数,如用“%5d”指定输出数据占5列
- 浮点型输出格式
- 指定数据宽度和小数位数 %m.nf,输出的数据占m列,其中小数占n列
- 输出数据向左对齐 %-m.nf
Reference:
C程序设计(第四版)——清华大学出版社