C語言編程大小端問題示例詳解教程
今天想給大家分享的,是數(shù)據(jù)存儲中的大小端問題,今天的分享主要分為三個部分,分別是如何理解大小端,大小端的基本概念以及大小端是如何影響數(shù)據(jù)存取的。
如何理解大小端
首先先帶大家了解一個權(quán)值的概念。
對于多位數(shù),處在某一位上的“i”所表示的數(shù)值的大小,稱為該位的位權(quán),可以簡單理解為權(quán)值。
權(quán)值大的即為高權(quán)值位,權(quán)值小的即為低權(quán)值位,例如 0x010001,從左邊起第一個1表示的是1*2^7,第二個1表示的是1*2^0,事實上,這也是我們通常所說的位置化數(shù)字系統(tǒng)。
在計算機中,數(shù)據(jù)按照字節(jié)為單位,有高權(quán)值位和低權(quán)值位之分,同樣的,顯而易見,地址也同樣有高權(quán)值位和低權(quán)值位之分,為什么呢?因為不同的地址,在計算機中也是由二進制數(shù)字表示的,不過此處應(yīng)該稱為高地址位和低地址位,看圖也可得知。
看上面這些地址,很容易得出,左側(cè)為高地址位,?右側(cè)為低地址位。
既然高權(quán)值位和低權(quán)值位以及高地址位和低地址位已經(jīng)闡明,那么到底該如何理解大小端呢?
?可以看出,數(shù)據(jù)有兩種存儲形式,大小端可以簡單的理解成數(shù)據(jù)在內(nèi)存中的兩種存儲形式!
大小端的基本概念
下面將給出一個以字節(jié)為單位進行存儲的數(shù)字在內(nèi)存中的大小端存儲形式幫助大家理解這個概念:
?
大小端是如何影響數(shù)據(jù)的存取的
大小端兩種存儲方案,本質(zhì)上是數(shù)據(jù)和空間按照字節(jié)為單位的一種映像關(guān)系。
此處舉的是小端的情況,事實上,這類似于棧的先進后出的原則。
事實上,上述存與取的方式與下面C程序地址空間正是一致的,即壓棧與出棧的過程符合先進后出。
好了,今天的分享到此結(jié)束,希望大家能夠有所收獲,如果文章中有一些不足或者錯誤的地方,希望大家能夠不吝指正,更多關(guān)于C語言大小端的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++詳解非類型模板參數(shù)Nontype與Template及Parameters的使用
除了類型可以作為模板參數(shù),普通值也可以作為模板函數(shù),即非類型模板參數(shù)(Nontype Template Parameters)。下面讓我們一起了解一下2022-06-06Linux下控制(統(tǒng)計)文件的生成的C代碼實現(xiàn)
這篇文章主要介紹了Linux下控制(統(tǒng)計)文件的生成的C代碼實現(xiàn),感興趣的小伙伴們可以參考一下2016-01-01