大端模式和小端模式

2021-09-30 09:55:29 字數 897 閱讀 8931

對於整型和長整型等資料型別,big endian 認為第乙個位元組在高位位元組(按照位址從低到高的順序存放資料的高位位元組和低位位元組),而little endian則相反,認為第乙個位元組是最低位位元組(按照從低位址到高位址的順序存放資料的地位位元組和高位位元組)。

0x0000     0x0001    0x0002     0x0003     

0x12   0x34   0xab     0xcd

如果我們去讀取乙個位址為0x0000四位元組的變數,若位元組序為big-endian,則讀出的結果為   0x1234abcd   若位元組序為little-endian,則讀出的結果為0xcdab3412

如果我們將0x1234abcd寫入到以0x0000開始的記憶體中,則little-endian和big-endian模式的存放結果如下位址

big-endian      0x12   0x34   0xab    0xcd

little-endian   0xcd    0xab   0x34    0x12

一般來說,x86系列cpc都是低位元組序的,powerpc通常是big-endian還有的cpu能通過跳線來調節cpu是工作於little-endian還是big-endian模式

對於0x12345678的儲存:

小端模式(從低位元組到高位元組)低位位址0x78 0x56 0x34 0x12  高位位址

大端模式(從高位元組到低位元組)低位位址0x12 0x34 0x56 0x78  高位位址

main()else}

大小端儲存問題,如果小端方式中(i 佔至少兩個位元組的長度),則i所分配的記憶體最小位址那個位元組中就存著1,其他位元組是0,大端的話則1在i的最高位址位元組處存放,char是乙個位元組,所以強制將char型量p指向i則p指向的一定是i的最低位址,那麼就可以判斷p中的值是不是1來確定是不是小端。

小端模式和大端模式 大端模式和小端模式

0x123456在記憶體中的儲存方式 大端模式 低位址 小端模式 低位址 不難看出大端模式比較符合人的直觀認識 1.一開始是由於不同架構的cpu處理多個位元組資料的順序不一樣,比如x86的是小段模式,keil c51是大端模式。但是後來網際網路流行,tcp ip協議規定為大端模式,為了跨平台通訊,還...

大端模式和小端模式

大端模式和小端模式 在c語言中除了8位的char型之外,還有16 位的short型,32 位的long型 要看具體的編譯器 對於位數大於8位的處理器,例如16位或者32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然 存在著如何將多個位元組安排的問題。因此就導致了大端儲存模式和小端儲存模式。大端模...

大端模式和小端模式

所謂的大端模式,是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 所謂的小端模式,是指資料的低位儲存在記憶體的低位址中,而數 據的高位儲存在記憶體的高位址中...