大小端模式定義
百度百科:
大端模式,是指數據的高字節保存在內存的低地址中,而數據的低字節保存在內存的高地址中,這樣的存儲模式有點兒類似於把數據當作字符串順序處理:地址由小向大增加,而數據從高位往低位放;
小端模式,是指數據的高字節保存在內存的高地址中,而數據的低字節保存在內存的低地址中,這種存儲模式將地址的高低和數據位權有效地結合起來,高地址部分權值高,低地址部分權值低,和我們的邏輯方法一致。
這兩種模式,泥瓦匠記憶宮殿:“小端低低”。這樣就知道小端的模式,反之大端的模式。
比如整形十進制數字:305419896 ,轉化爲十六進制表示 : 0x12345678 。其中按着十六進制的話,每兩位佔8個字節。如圖:
引申
stm32 flash存儲方式爲小端模式。
GSM模塊傳輸數據時,先傳低八位還時先傳高八位可採用如下宏定義處理:
//此爲16位無符號整型數據處理方法,32位同理
#put_uint16_t(buf, wire_offset, b) byte_copy_2(&buf[wire_offset], (const char *)&b)
void byte_copy_2(char *dst, const char *src)
{
dst[0] = src[0];
dst[1] = src[1];
}
void byte_swap_2(char *dst, const char *src)
{
dst[0] = src[1];
dst[1] = src[0];
}