1. 程式人生 > >簡述大端模式與小端模式

簡述大端模式與小端模式

大端模式與小端模式

由來

在C語言資料型別除char為8位外,還有16位,32位,64位等。那麼對於16位或者32位的處理器,一次處理的多於8位,所以要對位元組排列組合一下。也就有了大端儲存格式和小端儲存格式。

儲存格式

  • 大端儲存(Little-endian)格式

    在這種模式中,字資料的高位元組儲存在低地址中,而字資料的低位元組則存放在高地址中。
  • 小端儲存(Big-endian)格式

    與大端儲存模式相反,在小端儲存模式中,低地址中存放的是字資料的低位元組,高地址存放的是字資料的高位元組。

簡單來說:大端——高尾端,小端——低尾端

舉個例子,比如數字 0x12 34 56 78在記憶體中的表示形式為:

  • 大端模式

    低地址 -----------------> 高地址

    0x12  |  0x34  |  0x56  |  0x78

  • 小端模式

    低地址 ------------------> 高地址

    0x78  |  0x56  |  0x34  |  0x12

可見,大端模式和字串的儲存模式類似。

檢測你的是大端還是小端。m=22,n=11小端,反之大端。

#include <stdio.h>
 
int main(void)
{
    short int a=0x1122;
    int m,n;
 
    m=*((char*)&a);
    n=*((char*)&a+1);
 
    printf("m=%x\n",m);
    printf("n=%x\n",n);
    return 0;
}
Enjoy the sunshine today! :)