大小端模式

大小端模式

  • 大端模式

    是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。

  • 小端模式

    是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。

  • 举例说明

    • uint32_t value = 0x12345678,用uint8_t buf[4]来表示value;
    • 大端模式:低地址存放高位,高地址存放低位;
      • 低地址
        -----------
        buf[0] = 0x12 - - 高位
        buf[1] = 0x34
        buf[2] = 0x56
        buf[3] = 0x78 - - 低位
        -----------
        高地址

    • 小端模式:低地址存放低位,高地址存放高位;
      • 低地址
        -----------
        buf[0] = 0x78 - - 低位
        buf[1] = 0x56
        buf[2] = 0x34
        buf[3] = 0x12 - - 高位
        -----------
        高地址

  • 应用领域

    • 一些对于单片机的实现中是基于大端,比如Keil C51 、C52
    • 在英特尔处理器,Windows10操作系统上,VB6VS2013下-控制台项目VC++6.0-控制台工程VS2013下-控制台项目,都是小端模式。
    • 通信协议中的数据传输数组的存储方式数据的强制转换等这些都会牵涉到大小端问题。

  • 各自优点

    • 小端模式:强制转换数据不需要调整字节内容,比如int(4字节)转化成short(2字节),直接取出前面的低位两字节就可以了。
    • 大端模式:数据存储地址与数据阅读顺序一致,容易根据地址寻找;符号位的判定固定为第一个字节,容易判断正负。

你可能感兴趣的:(STM32开发笔记,单片机,嵌入式)