整型
个人计算机常见设置
short int long long long 16 16/32 32 64
C标准(规定atLeast大小)
short int long long long unsigned short unsigned int unsigned long unsigned long long 16 -32768~32767(16) -32768~32767(16) 32 -2147483648~2147483647(32) 0~65535(16) 0~65535(16) 0~42949672945(32) 64 -9223372036854775808~9223372036854775807(64) 0~18446744073709551615(64)
1. unsigned类型
2. 需要用到32bit空间 long 对于long>int 的机器,long运算速度会减慢,如非得已不要使用;对于long = int,为了可移植性,也该用long
3. 需要用到64bit空间 long long
4. 在int 为32bit系统中用到16bit空间 short 节省空间 计算机中某些组件的硬件寄存器为16bit
整型常量
编译器将其实现为恰能储存的类型 默认为int
通常:int-> unsigned int->long->unsigned long->long long->unsigned long long若需指明储存类型 添加后缀 65534L
整型溢出
汽车里程表
TYPE int unsigned 溢出 从-2147483648开始 从0开始
char类型
技术层面,char 为整型,计算机将整型数字转换为字符
字符常量‘ABCD…’
它们对应的整型值(16/32bit)截断操作(剩下后8bit)储存进char(8bit)类型
浮点类型
8bit 24bit 表示指数值及其符号 表示非指数部分(又叫做尾数或有效数字)值及其符号
一般情况
float double long double 大小(bit) 32 64 128 atLeast有效数字 6 10(一般为13) 18
浮点常量
默认为double类型
浮点数溢出
上溢 数字过大,超过当前类型表达范围,显示为 inf 下溢 数字过小,超过当前类型表达范围,指数部分已经最小,把尾数往右移➡️,丢弃后面的二进制数
printf()(其实并没有专门显示float类型的转换说明,传参或表达式中将float默认转换为double)
float %f / %lf double %f / %lf long double %Lf
数据类型限制信息