測試平台大端還是小端 網路位元組序和主機位元組序

2021-07-09 05:26:39 字數 1001 閱讀 9943

大端和小端(網路位元組序和主機位元組序)

大端(big endian):即網路位元組序。

小端(littile endian):即主機位元組序。

記憶方式:網路的範圍很大,所以大端是網路位元組序。

大端方式將高位存放在低位址,小端方式將低位存放在高位址。

採用大端方式進行資料存放符合人類的正常思維,而採用小端方式進行資料存放利於計算機處理。

如果將乙個32位的整數0x12345678存放到乙個整型變數(int)中,這個整型變數採用大端或者小端模式在記憶體中的儲存由下表所示。

為簡單起見,本書使用op0表示乙個32位資料的最高位元組msb(most significant byte),使用op3表示乙個32位資料最低位元組lsb(least significant byte)。

---------------------------

位址偏移 大端模式 小端模式

0x00 

12(op0) 78(op3)

0x01 

34(op1) 56(op2)

0x02 

56(op2) 34(op1)

0x03 

78(op3) 12(op0)

可用如下** 測試

int i=0x12345678;

char*p = (char *)&i;

if(*p == 0x78)

printf("p=%p\n",&p);//當前指標變數的值(指向的位址)

p++;//指標自增

printf("p++之後,p=%p\n",&p);//驗證指標自增以後的值(重新指向的位址)

if(*p == 0x56)

printf("litle endian\n");

printf("sizeof(p)=%lu \n",sizeof(p));

//測試指標變數所佔的位元組數,in fact,在win32平台上,任何型別的指標變數所佔的位元組數均為4.

p =null;

網路位元組序 大端 小端

1.小端法 little endian 就是低位位元組排放在記憶體的低位址端 即該值的起始位址 高位位元組排放在記憶體的高位址端 2.大端法 big endian 就是高位位元組排放在記憶體的低位址端 即該值的起始位址 低位位元組排放在記憶體的高位址端 網路上傳輸的資料都是位元組流,對於乙個多位元組...

大端 小端 網路位元組序

2010 10 10 17 44 58 分類 c vc c 舉報 字型大小訂閱 一 大端 小端 大端 和 小端 表示多位元組值的哪一端儲存在該值的起始位址處 小端儲存在起始位址處,即是小端位元組序 大端儲存在起始位址處,即是大端位元組序 或者說 1.小端法 little endian 就是低位位元組...

大端 小端 網路位元組序

網路位元組序 network byte order 一般是指大端 big endian,對大部分網路傳輸協議而言 傳輸,大端小端的概念是面向多位元組資料型別的儲存方式定義的,小端就是低位在前,大端就是高位在前,其中 前 是指靠近記憶體低位址,儲存在硬碟上就是先寫那個位元組 1 首先大小端是面向多位元...