1. 程式人生 > >位元組順序:小端和大端之爭

位元組順序:小端和大端之爭

1個位元組在記憶體儲存沒有爭議,當多個位元組在記憶體中儲存時,就有了不同的意見,目前,主要有2個方式:

小端:低位元組存低地址,高位元組存高地址。Little-Endian

大端:高位元組存低地址,低位元組存高地址。Big-Endian

看圖:

小端位元組序:低位元組存於記憶體低地址;高位元組存於記憶體高地址。如一個long型資料0x12345678,以位元組為最小單位。
        0x0029f458  0x78
        0x0029f459  0x56
        0x0029f45a  0x34
        0x0029f45b  0x12

大端位元組序:高位元組存於記憶體低地址;低位元組存於記憶體高地址。
        0x0029f458  0x12
        0x0029f459  0x34
        0x0029f45a  0x56
        0x0029f45b  0x78

intel的cpu都是用的小端模式。

在linux下可以用巨集直接檢視:

printf("Little endian:%d\n",__LITTLE_ENDIAN);//in stdlib.h
printf("Big endian:%d\n",__BIG_ENDIAN);
printf("mine:%d\n",__BYTE_ORDER);

 還可以在gdb中直接檢視變數的二進位制碼。