長久以來,位元組序的問題一直困擾我,每次搞明白之後隔一段時間又區分不出了,特此記錄,以便使用時查閱。
對於跨位元組的象的儲存,重要的有2點:
1、物件的位址其中的第二點,由於位元組排列的順序不同,引出了位元組序的問題,即在不同裝置中對於儲存的位元組順序的不同,造成的互相間通訊的轉換問題。2、儲存器中對於物件中位元組的排列
假設有乙個w位的整數,其按位表示如下:
[x其中,xww−1,
xw−2
,...
,x1,
x0]
−1是最高有效位,而x0
是最低有效位。
再假設w是8的倍數,那麼這些位可以被分隔為位元組。
其中,最高有效位元組
[x而最低有效位元組w−1,
xw−2
,...
,xw−
8]
[x在位元組儲存時有以下2種方式7,x6
,...
,x0]
1. 最高有效位元組在最前 – 大端法
2. 最低有效位元組在最前 – 小端法
例:假設變數x型別為int,位址為0x100,值為0x12345678
大端法:
小端法:
大端位元組序和小端位元組序
簡單介紹 位元組序是由cpu和os對多位元組變數的記憶體儲存順序不同而產生的 小端位元組序 在表示變數的記憶體位址的起始位址存放低位元組,高位元組順序存放 大端位元組序 在表示變數的記憶體位址的起始位址存放高位元組,低位元組順序存放,例如 變數的值0xabcd uint32 t htonl 主機位元...
大端位元組序和小端位元組序
title 大端位元組序和小端位元組序 格列佛遊記 中記載了兩個征戰的強國,你不會想到的是,他們打仗竟然和剝雞蛋的姿勢有關。很多人認為,剝雞蛋時應該打破雞蛋較大的一端,這群人被稱作 大端 big endian 派 可是當今皇帝的祖父小時候吃雞蛋的時候碰巧將乙個手指弄破了。所以,他的父親 當時的皇帝 ...
大端位元組序和小端位元組序
計算機硬體有兩種儲存資料的方式 大端位元組序 big endian 和小端位元組序 little endian 舉例來說,數值0x2211使用兩個位元組 一位元組是8bit 儲存 高位位元組是0x22,低位位元組是0x11。大端位元組序 低位位元組在高位址,高位位元組低位址上。這是人類讀寫數值的方法...