最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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é)序的評論 (共 條)

分享到微博請遵守國家法律
平乡县| 阿克| 新余市| 长乐市| 延津县| 岳池县| 贵州省| 镇赉县| 新平| 都兰县| 乌兰县| 灵川县| 吉安市| 新龙县| 甘孜县| 崇义县| 桦甸市| 视频| 永丰县| 石河子市| 浦城县| 峨山| 景洪市| 上杭县| 武平县| 恩施市| 晋宁县| 吉木萨尔县| 富民县| 石家庄市| 娄底市| 西安市| 章丘市| 瑞金市| 华坪县| 天峻县| 云林县| 昭觉县| 新绛县| 广水市| 江安县|