大小端裝置對程式的影響

2021-09-07 06:14:48 字數 686 閱讀 6011

裝置大小端模式的概念

大端模式,是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:位址由小向大增加,而資料從高位往低位放;這和我們的閱讀習慣一致。

小端模式,是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低。

超過一位元組的資料在大小端裝置的訪問方式就不一樣了,例如我們經常會見到的0x12345678,它大端裝置的存放就是12345678,但是在小端裝置就是:78563412。

最近在做一些關於大小端的問題處理,發現資料的訪問,以及對資料進行的一些算術位移操作等都不會受到大小端的影響。

那在什麼時候程式會受到大小端裝置的影響呢?

1、取位址時進行強制型別轉換,例如,把char型位址強制轉換為int型位址,在大小端裝置上轉換出來的結果就是不一樣的;

2、對大於一位元組的數,通過指標取其某一位進行操作時,例如資料0x12345678,在大端裝置上取該位元組的第二位時得到的是34,但是在小端裝置上就是56了,

其實,對於大小端的一些應用目前主要在網路程式設計的網路位元組序轉換當中,在這裡就不在詳細說明了。我們要理解的是,大小端裝置其實就是cpu對於大於一位元組的資料的儲存方式的不一樣。

這是我個人的一些看法和理解。

大小端對位元組序和位序的影響

1 位元組序 byte order 大端儲存格式 即多位元組資料的高位元組儲存在低位址中,而低位元組資料存放在高位址中。小端儲存格式 即多位元組資料的高位元組儲存在高位址中,而低位元組資料存放在低位址中。例子 short型別的資料 0x0201 大端儲存格式 存放內容 0x02 0x01 記憶體位址...

大小端對位元位的影響

1 我們知道,儲存數字時,對小端機而言,數字的低位,存在低位址,高位存在高位址。大端機正相反。2 讀取的方式,也是一樣的。對於小端機,讀出的低位址位作為數字的低位。3 此外big endian little endian儲存順序,不僅僅針對位元組,還針對位元組內的位元位。對於小端機而言,位元組內的8...

虛繼承對類大小的影響

虛繼承對類大小的影響 virtual 存在,共享,間接 include using namespace std define prt x coutprt dd 執行時會根據虛基類表找到dd中的虛基類部分的位址,prt pp bb 將其賦值給pp return 0 虛繼承後類的記憶體模型 b1 虛基類...