数据类型

整型

个人计算机常见设置

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

数据类型限制信息

数据类型

数据类型