- 常用的进制有:二进制、十进制、十六进制;八进制用得较少
- 不同的进制间转换
- 16进制中,每个值由4bit表示,最大表示15
- 在内存中的存储方式有两种:大端字节序、小端字节序
- 大端字节序表示高字节存放在低地址,低字节存放在高地址;小端字节序表示高字节存放在高地址,低字节存放在低地址。
- CPU一般从低往高地址读取数据(比如读取32bit的数据,但每个字节都有地址,则按最低地址来读取即可),如果先看到的是高字节表示是大端,反之先看到的是低字节则表示小端
- 一般的arm芯片都是小字节序,有些处理器,可以置某个寄存器,让整个系统使用大字节序或小字节序
- 位操作就是对一个bit进行操作;有移位、取反、位与、位或、置位、清位等操作
- 移位操作又分为算术移位和逻辑移位
- 算术移位,需要分有符号型值和无符号型值:
- 对于无符号型值,算术移位等同于逻辑移位。
- 对于有符号型值 ,算术左移等同于逻辑左移;算术右移补的是符号位,正数补0,负数补1。
- 对于无符号型值,算术移位等同于逻辑移位。
- 在嵌入式开发过程中,我们一般只涉及逻辑移位:不关心符号位,都是补0
- 算术移位,需要分有符号型值和无符号型值:
- 取反操作就是对每一bit进行取反,0变为1,1变为0; 符号是 ~
- 位与操作是每一bit都进行与操作,与0相与变为0,与1相与不变; 符号是 &
- 位或操作是每一bit都进行或操作,与0相或不变,与1相或变为1;符号是 |
- 置位操作是将逻辑移位操作与位或操作进行结合的操作,可以实现将指定的某bit设为1; 清位操作则是逻辑移位与取反操作、位与操作进行结合,实现某bit清零