先來熟悉一下概念:
大端:數據的高位數據保存在低位地址,數據的低位數據保存在高地址
小端:數據的高位數據保存在高位地址,數據的低位數據保存在低地址
為什么會存在大小端的問題?
這是因為在計算機系統中,我們是以字節為單位的,每個地址單元都對應著一個字節,一個字節為 8bit。但是在c語言中還有short、long大于一個字節的數據類型。例如16位或者32位的處理器,由于寄存器寬度大于一個字節,那么必然存在著一個如何將多個字節安排的問題。
我們常見的X86架構的計算機是小端模式,ARM架構可以根據需要去改變大小端模式,下面是在我的計算機上運行的一段程序:
分析:小端模式存儲低地址存放低字節,數組0元素是最低地址,按照小段模式的存儲應該是
所以按照int打印出來就是:0x04030201(小端模式)