最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解

 更新時(shí)間:2019年02月20日 09:25:18   作者:迂者-賀利堅(jiān)  
今天小編就為大家分享一篇關(guān)于整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

(以下討論,針對(duì)32位的計(jì)算機(jī)系統(tǒng)。。)

問(wèn):int型數(shù)據(jù)占幾個(gè)字節(jié)?答:4字節(jié)。地球上這個(gè)群體的人都知道。

再問(wèn):這4個(gè)字節(jié),即32個(gè)二進(jìn)制位,又是何存儲(chǔ)?這就進(jìn)入計(jì)算機(jī)的“底層”了。這個(gè)事情,學(xué)習(xí)程序設(shè)計(jì)的童鞋,可以懂。

存儲(chǔ)的方式,和我們拍腦袋想得不太一樣,概括一下,就是低位在前,高位在后。

本文直觀一些,看懂以下程序中數(shù)據(jù)的存儲(chǔ),也便知道這個(gè)安排。

(源程序,及在watch窗口中用多種方式看x.c的方法,見(jiàn)文后附件。)

在程序中,由于聯(lián)合體存儲(chǔ)的特點(diǎn),變量x占4個(gè)字節(jié)。我們可以從3個(gè)角度觀察這4個(gè)字節(jié):(1) 整體看,是一個(gè)int型數(shù)據(jù);(2) 分成2部分看,是兩個(gè)短整型數(shù)據(jù);(3) 分成4部分看,是4個(gè)單字節(jié)的數(shù)據(jù)。

但無(wú)論怎么看,就是這4個(gè)字節(jié)。無(wú)論用哪種形式操作數(shù)據(jù),使用的也就是這4個(gè)字節(jié)。聯(lián)合體為我們提供了從不同的角度使用這4個(gè)字節(jié)的方式。

x.c[0]到x.c[3]的值分別為65\66\67\68,這好理解。

x.si[0]占的2字節(jié),與x.c[0]和x.c[1]相同。驗(yàn)證一下:16961=66×256+65(66是'B'的ACSII值,65是'A'的ASCII值,是字符的存儲(chǔ)形式)。注意,這里體現(xiàn)存儲(chǔ)數(shù)據(jù)時(shí)低位在前,高位在后,低位是65,高位是66。正如十進(jìn)制數(shù)98中,高位是9,低位是8,所以98=9×10+8一樣。因?yàn)槭歉呶?,所以乘以位?quán)10,表示9這個(gè)符號(hào)代表的其實(shí)是90。66×256,是因?yàn)榇鎯?chǔ)66(‘B')的那一個(gè)字節(jié)的位置,比存儲(chǔ)65(‘A')的那一個(gè)字節(jié)的位置高8位,所以乘以2的8次方,即256。

概括講,存儲(chǔ)2字節(jié)的16961時(shí),其低8位,是65,在前(x.c[0]),而其高8位,是66,在后(x.c[1])。低位在前,高位在后。

請(qǐng)自行驗(yàn)證:17475=68×256+67,體現(xiàn)低位在前,高位在后。(x.si[0]占的2字節(jié),與x.c[2]和x.c[3]相同)

再請(qǐng)驗(yàn)證:1145258561=17475×256×256+16961,也體現(xiàn)低位在前,高位在后。(x.i占的4字節(jié),與x.si[0]和x.si[1]相同)

再請(qǐng)驗(yàn)證:1145258561=68×256×256×256+67×256×256+66×256+65。同樣的道理。

換種寫(xiě)法,是1145258561=(((68×256+67)×256+66)×256+65。

再看截圖,品味低位在前,高位在后。

這樣安排的道理,在以后的關(guān)于“計(jì)算機(jī)的原理”的有關(guān)專(zhuān)業(yè)課中會(huì)接觸到。

附1:本文源程序

#include <iostream>
using namespace std;
union un
{
  int i;
  short int si[2];
  char c[4];
};
int main()
{
  union un x;
  x.c[0]='A';
  x.c[1]='B';
  x.c[2]='C';
  x.c[3]='D';
  cout<< x.c[0]<<","<<x.c[1]<<","<< x.c[2]<<","<< x.c[3]<<endl;
  cout<<x.si[0]<<","<< x.si[1]<<endl;
  cout<<x.i<<endl;
  return 0;
}

附2:在watch窗口中用多種方式看x.c的方法

在watch窗口中,除自動(dòng)顯示的局部變量的值,還可以自行輸入表達(dá)式跟蹤。

方法是,直接在表格中寫(xiě)下表達(dá)式,如圖中,x.c,其他任意。

輸入表達(dá)式后,在上面點(diǎn)右鍵,會(huì)有幾個(gè)選項(xiàng),點(diǎn)properties…(屬性),然后就是如下的窗口:


任性地多角度觀察吧!

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • C++關(guān)于引用作為函數(shù)的用法

    C++關(guān)于引用作為函數(shù)的用法

    今天小編就為大家分享一篇關(guān)于C++關(guān)于引用作為函數(shù)的用法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C語(yǔ)言中冒泡排序算法詳解

    C語(yǔ)言中冒泡排序算法詳解

    大家好,本篇文章主要講的是C語(yǔ)言中冒泡排序算法詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • C語(yǔ)言中pthread_create函數(shù)實(shí)現(xiàn)向線程函數(shù)傳遞參數(shù)

    C語(yǔ)言中pthread_create函數(shù)實(shí)現(xiàn)向線程函數(shù)傳遞參數(shù)

    本文主要介紹了C語(yǔ)言中pthread_create函數(shù)實(shí)現(xiàn)向線程函數(shù)傳遞參數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)詳細(xì)講解

    C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)詳細(xì)講解

    高精度算法的本質(zhì)是把大數(shù)拆成若干固定長(zhǎng)度的塊,然后對(duì)每一塊進(jìn)行相應(yīng)的運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于C/C++高精度運(yùn)算(大整數(shù)運(yùn)算)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • C語(yǔ)言每日練習(xí)之冒泡排序

    C語(yǔ)言每日練習(xí)之冒泡排序

    這篇文章主要介紹了C語(yǔ)言冒泡排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C語(yǔ)言中各類(lèi)指針的用法(小結(jié))

    C語(yǔ)言中各類(lèi)指針的用法(小結(jié))

    這篇文章主要介紹了C語(yǔ)言中各類(lèi)指針的用法(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C++歸并排序算法實(shí)例

    C++歸并排序算法實(shí)例

    這篇文章主要介紹了C++歸并排序算法實(shí)例,本文先是介紹了什么是歸并排序,然后給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • C++ Boost Graph算法超詳細(xì)精講

    C++ Boost Graph算法超詳細(xì)精講

    這篇文章主要介紹了C++ Boost Graph算法,我門(mén)嘗試使用Boost.Graph庫(kù)來(lái)運(yùn)行Goldberg的最大流算法。 Boost.Graph將其稱(chēng)為push_relabel_max_flow
    2022-10-10
  • 基于C++中常見(jiàn)內(nèi)存錯(cuò)誤的總結(jié)

    基于C++中常見(jiàn)內(nèi)存錯(cuò)誤的總結(jié)

    本篇文章是對(duì)C++中常見(jiàn)的內(nèi)存錯(cuò)誤進(jìn)行了總結(jié)介紹。需要的朋友參考下
    2013-05-05
  • C++模板編程特性之移動(dòng)語(yǔ)義

    C++模板編程特性之移動(dòng)語(yǔ)義

    首先,移動(dòng)語(yǔ)義和完美轉(zhuǎn)發(fā)這兩個(gè)概念是在C++的模板編程的基礎(chǔ)上,新增的特性,主要是配合模板來(lái)使用。本篇會(huì)從C++的值類(lèi)型,到移動(dòng)拷貝與移動(dòng)賦值來(lái)理解移動(dòng)語(yǔ)義與完美轉(zhuǎn)發(fā)
    2022-08-08

最新評(píng)論

绥芬河市| 武宣县| 三台县| 丘北县| 从化市| 定边县| 鹿邑县| 社会| 怀远县| 娱乐| 大城县| 桑植县| 拉萨市| 林州市| 玉屏| 武平县| 剑川县| 阜平县| 桦甸市| 宜都市| 德昌县| 洛浦县| 三都| 荥经县| 庄浪县| 宽甸| 巴林右旗| 新沂市| 阜宁县| 常熟市| 当雄县| 安庆市| 志丹县| 桂平市| 高要市| 钦州市| 阳高县| 丹凤县| 江油市| 汾阳市| 包头市|