国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C語言,大小端字節(jié)序

2022-05-02 21:03 作者:北岸已春山  | 我要投稿


什么是大小端?

首先,我們要知道如何區(qū)分數(shù)據(jù)的高位與低位:

如數(shù)字123,分別對應(yīng)‘個?十 百’,個位3為低位,百位1為高位。

大小端模式,又稱大小端字節(jié)序存儲模式。

大端字節(jié)序存儲模式,是指數(shù)據(jù)的低位保存在內(nèi)存的高地址中,而數(shù)據(jù)的高位保存在內(nèi)存的低地址中。

小端字節(jié)序存儲模式,是指數(shù)據(jù)的低位保存在內(nèi)存的低地址中,而數(shù)據(jù)的高位保存在內(nèi)存的高地址中。

如圖p0:

p0


在Windows端,如VStudio編譯器,數(shù)據(jù)是以小端字節(jié)序存儲模式在內(nèi)存中存儲的。

p1

如圖片p1,雖然最終的數(shù)據(jù)為0x 00 00 00 01,但在調(diào)試查看時顯示出來的是0x 01 00 00 00,這就是小端字節(jié)序存儲模式。
注:數(shù)據(jù)在內(nèi)存中是以二進制的形式存儲的,目前我們所見的16進制數(shù)據(jù)是為了迎合VS編譯器所顯示的小端字節(jié)序存儲模式,方便查看及理解。

為什么會有大小端模式?

標準答案:這是因為在計算機系統(tǒng)中,我們是以字節(jié)為單位的,每個地址單元都對應(yīng)著一個字節(jié),一個字節(jié)為8bit。但是在C語言中除了8bit的char之外,還有16bit的short型,32bit的long型(要看具體的編譯器),另外,對于位數(shù)大于8位的處理器,例如16位或者32位的處理器,由于寄存器寬度大于一個字節(jié),那么必然存在著一個如何將多個字節(jié)安排的問題。因此就導致了大端存儲模式和小端存儲模式。

一開始是由于不同架構(gòu)的CPU處理多個字節(jié)數(shù)據(jù)的順序不一樣,比如x86的是小段模式,KEIL C51是大端模式。但是后來互聯(lián)網(wǎng)流行,TCP/IP協(xié)議規(guī)定為大端模式,為了跨平臺通信,還專門出了網(wǎng)絡(luò)字節(jié)序和主機字節(jié)序之間的轉(zhuǎn)換接口(ntohs、htons、ntohl、htonl)

?大小端模式各有優(yōu)勢:小端模式強制轉(zhuǎn)換類型時不需要調(diào)整字節(jié)內(nèi)容,直接截取低字節(jié)即可;大端模式由于符號位為第一個字節(jié),很方便判斷正負。

大小端判斷方法:


C語言,大小端字節(jié)序的評論 (共 條)

分享到微博請遵守國家法律
应城市| 日喀则市| 克拉玛依市| 芜湖市| 筠连县| 鹤峰县| 搜索| 延津县| 沙洋县| 通州区| 榆树市| 北京市| 鄂州市| 柘荣县| 秭归县| 扶余县| 大港区| 岳普湖县| 泸州市| 苍梧县| 富裕县| 富锦市| 黄浦区| 海宁市| 宜黄县| 安远县| 福安市| 大田县| 法库县| 杨浦区| 鄂伦春自治旗| 周口市| 且末县| 嘉祥县| 金昌市| 上高县| 武川县| 丹棱县| 博野县| 石台县| 阳原县|