大端模式:数据高字节保存在内存低地址,数据低字节保存在内存高地址;
小端模式:数据高字节保存在内存高地址,数据低字节保存在内存低地址;
stm32默认小端存储,如下图:
有:
volatile float f = -0.1;
volatile float *p = &f;
volatile uint32_t i = 0xaabbccdd;
volatile uint32_t *p2 = &i;
volatile int32_t i2 = -5;
volatile int32_t *p3 = &i2;
变量名 | 地址 | 值 |
f | 0x20000000 | 0xBDCCCCCD |
p | 0x20000004 | 0x20000000 |
i | 0x20000008 | 0xAABBCCDD |
p2 | 0x2000000B | 0x20000008 |
看0x20000000地址存储的值,0xBDCCCCCD的存储顺序为CD CC CC BD,变量i的值的地址0x20000008存DD,之后一次存放CC BB AA。
计算机编码概念:参http://share.onlinesjtu.com/mod/tab/view.php?id=173点击打开链接
原码:符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示的方法称为原码表示法,通常用[X]原表示X的原码。
反码:正数的反码与原码相同,负数的反码是符号位不变,数值位逐位取反。
补码: