(以下討論,針對(duì)32位的計(jì)算機(jī)系統(tǒng)。。)
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的玉田網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!問(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。同樣的道理。
換種寫法,是1145258561=(((68×256+67)×256+66)×256+65。
再看截圖,品味低位在前,高位在后。
這樣安排的道理,在以后的關(guān)于“計(jì)算機(jī)的原理”的有關(guā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; }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站jinyejixie.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文標(biāo)題:整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解-創(chuàng)新互聯(lián)
URL地址:http://jinyejixie.com/article32/cshspc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站策劃、云服務(wù)器、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容