整数:没有小数点的数。
浮点数:含有小数点以及用指数形式表示的数(例如7.00,3.1E7,2e-8)
浮点数用于整数的存储方式不同。例如整数7的二进制表述为111,在8位的字节中存储需要将前五位置零,后三位置1.浮点数是讲一个数分为小数部分和指数部分分别存储。
(表格是自己整理,应该瑕疵挺多,错误的话请评论告诉我,谢谢!。)
类型 | ANSIC规定的最小位 | 最小取值范围 | 后缀标识 | 打印所需的符号 | 1, 整数溢出:一个变量当达到并超过它的最大值时就会溢出,回到起始值。 2,现在大部分电脑及系统中int是32位,16位是ANSIC规定的最小值。 3.使用long代替int的原因:如果确实需要处理更大的数,使用一种在所有系统中都是至少32位的类型会使程序的移植性更好。 4.,八进制和十六进制与十进制在计算机的存储是相同的。 |
char | 8位 |
| %c | ||
short | 16位 | -32767到32767 |
| %d | |
Unsigned short | 16位 | 0到65535 |
| %u | |
unsigned int | 16位 | 0到65535 |
| %u | |
int | 16位 | -32768到32767 |
| %d | |
long | 32位 | -2147483647到2147483647 | L | %ld | |
long long | 64位 | -9223372036854775807到9223372036854775807 | LL | %lld | |
unsigned long long | 64位 | 0到18446744073709551615 | ULL | %ulld |
类型 | ANCIC规定的最小值 | 有效数字 | 存储 | 指数范围 | 有效数字:小数点后第一个不是零的数开始数 |
float | 6位 | 6位 | 32位 8(指数)+24(尾数) | -37到37 | 打印浮点值:%f打印十进制的数字, %e打印指数记数法的数字(十六进制为%a)。打印long double类型用%lf,%le.(十六进制为%la)注意:输入十进制,可转换%f,%e,输入指数数字,只能%e。 |
double | 18位 | 10位 | 64位 8(指数)+24+32(尾数) | -37到37 | 浮点值的上溢:变量上溢,printf显示此值为inf或infinity(无穷大),或者这个含义的其他名称。 下溢:损失精度。(具体p49下) |
longdouble | 18位 | 至少10位 |
| -37到37 |