1、概念
所謂大端小端,指的是對于多位元組的資料類型(比如,int)在記憶體中存放的位元組順序。小端是指低位址的位元組存放的是資料的低位,高位址位元組存放的是資料的高位。大端是指低位址位元組存放的是資料的高位,高位址位元組存放資料的高位。簡單地說,低位位元組存放資料的高位就是大端,低位就是小端。
下面是一個例子,用來說明整數0x12345678在大端小端模式下不同的存放順序。
記憶體位址
小端模式
大端模式
0x5250
0x78
0x12
0x5251
0x56
0x34
0x5252
0x5253
你可能會想,我是不是搞錯了。但的确沒錯,因為12是資料的高位,78是資料的低位。
2、如何判斷
判斷的基本原理都是取出一個多位元組資料結構的第一個位元組,如果該位元組是資料的高位,那麼該機器就是大端;如果該位元組是資料的低位,那麼該機器就是小端。廢話不說,上代碼。
2.1 指針轉換
2.2 聯合