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