mysql 大小端 大小端定義

2021-10-20 22:20:53 字數 839 閱讀 5718

大小端的定義

big-endian和little-endian的定義如下:

little-endian就是低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端。

big-endian就是高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端。

舉乙個例子,比如數字0x12 34 56 78在記憶體中的表示形式為:

大端模式:

低位址 -----------------> 高位址

0x12 | 0x34 | 0x56 | 0x78

高位--------------------低位

記憶體中的表示:

buf[0]=0x12

buf[1]=0x34

buf[2]=0x56

buf[3]=0x78

可見,大端模式和字串的儲存模式類似。

小端模式:

低位址 ------------------> 高位址

0x78 | 0x56 | 0x34 | 0x12

低位---------------------高位

記憶體中的表示

buf[0]=0x78

buf[1]=0x56

buf[2]=0x34

buf[3]=0x12

網路中的位元組序

網路中的資料均使用大端模式,傳送端需要使用htons/htonl來確保轉換為大端模式(網路位元組序),接收端需要使用ntohs/ntohl來確保轉換為本機的大(小)端模式(主機位元組序)。

應用層的位元組序

要根據具體應用協議去區分,比如mysql通訊協議,使用的是the least significant byte first,其實就是小端方式。

大小端定義

所謂的大端模式,是指資料的高位,儲存在記憶體的低位址中,而資料的低位,儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 例子 0000430 e684 6c4e 0100 1800 53ef 0100 0100 0000 0000440...

mysql 大小端 記憶體大小端對齊

不同的 cpu 有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序 最常見的有兩種 le little endian 最符合人的思維的位元組序 位址低位儲存值的低位 位址高位儲存值的高位 怎麼講是最符合人的思維的位元組序,是因為從人的第一觀感來說 低位值小,就應該放在記憶...

mysql 大小端 CPU的大小端及如果判斷

不同體系結構的cpu,資料在記憶體中存放的排列順序是不一樣的。儲存器中對資料的儲存是以位元組 byte 為基本單位的,因此,字 word 和半字 half word 在儲存器中就有兩種次序,分別稱為 大端模式 big endian 和小端模式 little endian 大端儲存模式是指字或半字的最...