1. 程式人生 > >大小端模式

大小端模式

thum 計算機 小端模式 win 行數 存儲 其中 .com upload

大端模式:數據的高字節保存在內存的低地址中,低字節保存在內存的高地址 小端模式,數據的高字節保存在內存的高地址中,低字節保存在內存的低地址

比如整形十進制數字:305419896 ,轉化為十六進制表示 : 0x12345678 。其中按著十六進制的話,每兩位占8個字節。如圖

技術分享圖片

為什麽有大小端模式之分呢?

如果統一使用大端或者小端,那麽何來三國演義,何來一戰二戰呢?還有大小端也來源於戰爭。所以存在即是合理。

在操作系統中,x86和一般的OS(如windows,FreeBSD,Linux)使用的是小端模式。但比如Mac OS是大端模式。

在計算機系統中,我們是以字節為單位的,每個地址單元都對應著一個字節,一個字節為8bit。但是在C語言中除了8bit的char之外,還有16bit的short型,32bit的long型(要看具體的編譯器)。另外,對於位數大於8位的處理器,例如16位或者32位的處理器,由於寄存器寬度大於一個字節

,那麽必然存在著一個如果將多個字節安排的問題。因此就導致了大端存儲模式和小端存儲模式。

知道為什麽有模式的存在,下面需要了解下具有有什麽應用場景

1、不同端模式的處理器進行數據傳遞時必須要考慮端模式的不同

2、在網絡上傳輸數據時,由於數據傳輸的兩端對應不同的硬件平臺,采用的存儲字節順序可能不一致。所以在TCP/IP協議規定了在網絡上必須采用網絡字節順序,也就是大端模式。對於char型數據只占一個字節,無所謂大端和小端。而對於非char類型數據,必須在數據發送到網絡上之前將其轉換成大端模式。接收網絡數據時按符合接受主機的環境接收。

大小端模式