参与运算的寄存器的数据长度
单片机的位数指CPU处理的数据的宽度,也就是CPU一次数据的吞吐量。
比如同一条指令:MOV R0 R2
在51单片机里面,R0和R2都是8位的,所以51的CPU一次只能处理8位数据。
在ARM里面,R0和R2是32位的,所以ARM的CPU一次能处理32位数据。
8位数据类型:
32位数据类型
1、有符号整型
s8 占用1个byte,数据范围 -2^7 到 (2^7-1)
s16 占用2个byte,数据范围 -2^15 到 (2^15-1)
s32 占用 4个byte,数据范围 -2^31 到 (231-1)231 = 2147483647
int64_t占用8个byte,数据范围 -2^63 到 (2^63-1) 2^63 = 9223372036854775807ll
2、无符号整型
u8 占用1个byte, 数据范围 0 - 2^8
u16 占用2个byte, 数据范围 0 - 2^16
u32 占用4个byte, 数据范围 0 - 2^32 2^32 = 4294967295
uint64_t 占用8个byte, 数据范围 0 - 2^64 2^64 = 18446744073709551615
3、浮点型
float ——4个byte,有符号型,可以表达负数/小数; Float 类型至少要能精确表示到小数点后6位。
double——8个byte,有符号型,可以表达负数/小数;Double 类型至少要能精确到小数点后 10 位。