第2章基本數(shù)據(jù)的表示與處理_第1頁(yè)
第2章基本數(shù)據(jù)的表示與處理_第2頁(yè)
第2章基本數(shù)據(jù)的表示與處理_第3頁(yè)
第2章基本數(shù)據(jù)的表示與處理_第4頁(yè)
第2章基本數(shù)據(jù)的表示與處理_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《計(jì)算基礎(chǔ)——C++語(yǔ)言實(shí)現(xiàn)》在計(jì)算機(jī)中,所有的數(shù)據(jù)和指令都采用二進(jìn)制形式存儲(chǔ)。計(jì)算機(jī)中存儲(chǔ)的數(shù)據(jù)分為兩大類:數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)。數(shù)值數(shù)據(jù)能夠表示數(shù)值的大小,非數(shù)值數(shù)據(jù)則是字符、圖形、圖像、聲音等非數(shù)值信息的數(shù)字化表示。因此,在計(jì)算機(jī)中存儲(chǔ)的同一個(gè)二進(jìn)制數(shù),在不同的應(yīng)用場(chǎng)景下,會(huì)有不同的含義。人類使用計(jì)算機(jī)求解問(wèn)題,就是對(duì)計(jì)算機(jī)中存儲(chǔ)的數(shù)據(jù)進(jìn)行加工處理,得到新的數(shù)據(jù),即獲得了新的信息,得到了問(wèn)題的解。本章介紹了二進(jìn)制數(shù)及幾種基本數(shù)據(jù)類型的二進(jìn)制數(shù)據(jù)表示方法,包括十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法,整數(shù)、實(shí)數(shù)、字符和邏輯型數(shù)據(jù)的二進(jìn)制表示法等;還介紹了如何通過(guò)C++語(yǔ)言實(shí)現(xiàn)這些基本數(shù)據(jù)類型在計(jì)算機(jī)中的存儲(chǔ),以及對(duì)這些基本數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行處理的方法。第2章基本數(shù)據(jù)的表示與處理22.1.1數(shù)據(jù)的單位1.位計(jì)算機(jī)中最小的數(shù)據(jù)單位是二進(jìn)制的一個(gè)數(shù)位,簡(jiǎn)稱位(bit),譯音為“比特”。一個(gè)二進(jìn)制位可以表示0和1兩種狀態(tài),即21種狀態(tài),所以,n個(gè)二進(jìn)制位可以表示2n種狀態(tài)。位數(shù)越多,所能表示的狀態(tài)就越多,也就能夠表示更多的數(shù)據(jù)或信息。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示32.字節(jié)8位為一個(gè)字節(jié)(byte),譯音為“拜特”,記作B。字節(jié)是計(jì)算機(jī)中用來(lái)表示存儲(chǔ)空間大小的最基本的容量單位。表示更多的存儲(chǔ)容量經(jīng)常使用KB(210B)、MB(220B)、GB(230B)和TB(240B)等單位。3.字字(word)是計(jì)算機(jī)一次能夠存儲(chǔ)和處理的二進(jìn)制位的長(zhǎng)度。所謂的64位計(jì)算機(jī),含義是該計(jì)算機(jī)的字長(zhǎng)是64個(gè)二進(jìn)制位,即每一個(gè)字由8個(gè)字節(jié)組成。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示42.1.2數(shù)制1.數(shù)制數(shù)制就是用一組固定的數(shù)碼和一套統(tǒng)一的規(guī)則來(lái)表示數(shù)值的方法。例如,人們最熟悉的十進(jìn)制,使用固定的10個(gè)數(shù)碼(0、1、2、3、4、5、6、7、8、9)并按照“逢十進(jìn)一”的規(guī)則來(lái)表示數(shù)值;再如,在計(jì)算機(jī)中使用的二進(jìn)制數(shù),使用兩個(gè)固定數(shù)碼(0和1),計(jì)數(shù)規(guī)則為“逢二進(jìn)一”。在一種數(shù)制中所使用的數(shù)碼的個(gè)數(shù)稱為該數(shù)制的基數(shù)。可見(jiàn)十進(jìn)制的基數(shù)為10;二進(jìn)制的基數(shù)為2。每一種數(shù)制中最小的數(shù)碼都是0,而最大的數(shù)碼比基數(shù)小1。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示5十進(jìn)制數(shù)1111.11中有6個(gè)數(shù)碼1,它們所表示的值從左到右依次是1000、100、10、1、0.1和0.01。該數(shù)可以表示為按權(quán)展開(kāi)的形式:1111.11=1×103+1×102+1×101+1×100+1×10-1+1×10-2因此,任意一個(gè)具有n位整數(shù)和m位小數(shù)的R進(jìn)制數(shù)N的按權(quán)展開(kāi)式為:(N)R=an–1×Rn–1+an–2×Rn–2+…+a2×R2+a1×R1+a0×R0

+a–1×R–1+…+a–m×R–m其中:ai為R進(jìn)制的數(shù)碼,ai的取值范圍為[0,R-1];Ri為R進(jìn)制數(shù)的位權(quán)。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示6【例2-1】寫(xiě)出十進(jìn)制數(shù)1230.45的按權(quán)展開(kāi)式。解:1230.45=1×103+2×102+3×101+0×100+4×10-1+5×10-2【例2-2】二進(jìn)制數(shù)11011.01的按權(quán)展開(kāi)式。解:11011.01=1×24+1×23+0×22+1×21+1×20

+0×2-1+1×2-22.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示71.常用數(shù)制計(jì)算機(jī)領(lǐng)域中常用的數(shù)制有4種:二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。二進(jìn)制是計(jì)算機(jī)中使用的基本數(shù)制,二進(jìn)制數(shù)比十進(jìn)制的運(yùn)算規(guī)則簡(jiǎn)單得多。二進(jìn)制僅使用兩個(gè)數(shù)碼0和1,只需要用兩種不同的穩(wěn)定狀態(tài)(如高電位與低電位)來(lái)表示。1和0兩個(gè)數(shù)碼可以用來(lái)表示邏輯值“真”和邏輯值“假”,從而容易處理邏輯運(yùn)算。如果采用十進(jìn)制數(shù),則需要用10種狀態(tài)來(lái)表示每個(gè)數(shù)碼,實(shí)現(xiàn)起來(lái)要困難很多。二進(jìn)制僅使用兩個(gè)數(shù)碼,傳輸和處理時(shí)出錯(cuò)概率小,這使得計(jì)算機(jī)具有高的可靠性。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示8人們可以將熟悉的十進(jìn)制數(shù)輸入計(jì)算機(jī),由計(jì)算機(jī)將其自動(dòng)轉(zhuǎn)換成二進(jìn)制數(shù)進(jìn)行存儲(chǔ)和處理,計(jì)算結(jié)果也會(huì)自動(dòng)轉(zhuǎn)換成十進(jìn)制數(shù)輸出,這給人們使用計(jì)算機(jī)帶來(lái)極大的方便。由于二進(jìn)制數(shù)的位數(shù)較多,不方便書(shū)寫(xiě)和閱讀,所以常用十六進(jìn)制數(shù)或八進(jìn)制數(shù)表示二進(jìn)制數(shù)。十六進(jìn)制數(shù)的數(shù)碼為0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其中A~F分別代表10~15。當(dāng)給出一個(gè)數(shù)時(shí)就必須指明它屬于哪一種數(shù)制。不同數(shù)制中的數(shù)在書(shū)寫(xiě)時(shí),可以用下標(biāo)或后綴來(lái)標(biāo)識(shí)。例如,二進(jìn)制數(shù)10110可以寫(xiě)成(10110)2或10110B;十六進(jìn)制數(shù)2D5F可以寫(xiě)成(2D5F)16或2D5FH;十進(jìn)制數(shù)123.45可以寫(xiě)成(123.45)10或123.45D,也可直接寫(xiě)成123.45。表2-1列出了4種常用數(shù)制中的數(shù)碼、基數(shù)、位權(quán)及后綴。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示93.不同數(shù)制之間數(shù)的相互轉(zhuǎn)換(1)非十進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)非十進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的方法是:

將非十進(jìn)制數(shù)按權(quán)展開(kāi)求和?!纠?-3】將二進(jìn)制數(shù)(1101.1)2轉(zhuǎn)換成十進(jìn)制數(shù)。解:(1101.1)2=1×23+1×22+0×21+1×20+1×2-1=8+4+0+1+0.5=13.52.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示10【例2-4】將八進(jìn)制數(shù)(346)8轉(zhuǎn)換成十進(jìn)制數(shù)。解:(346)8=3×82+4×81+6×80=192+32+6=230【例2-5】將十六進(jìn)制數(shù)(2A6.8)16轉(zhuǎn)換成十進(jìn)制數(shù)。解:(2A6.8)16=2×162+10×161+6×160+8×16-1=512+160+6+0.5=678.5。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示11(2)十進(jìn)制數(shù)轉(zhuǎn)換成非十進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換成非十進(jìn)制數(shù)的方法是:

整數(shù)部分的轉(zhuǎn)換采用“除基取余法”;小數(shù)部分的轉(zhuǎn)換采用“乘基取整法”?!纠?-6】將十進(jìn)制數(shù)20轉(zhuǎn)換成二進(jìn)制數(shù)。解:采用“除基取余法”:轉(zhuǎn)換結(jié)果是:20=10100B2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示12【例2-7】將十進(jìn)制數(shù)20.25轉(zhuǎn)換成二進(jìn)制數(shù)。解:首先將整數(shù)部分20按上述方法轉(zhuǎn)換為二進(jìn)制數(shù)10100B;再將小數(shù)部分0.25連續(xù)乘以基數(shù)2,直到小數(shù)部分等于0為止。然后,將每次相乘所得到的數(shù)的整數(shù)部分按正序從左到右排列:轉(zhuǎn)換結(jié)果是:20.25=10100.01B。提示:不是所有的十進(jìn)制小數(shù)都能用二進(jìn)制小數(shù)來(lái)精確地表示。例如0.57,無(wú)論乘以多少個(gè)2,都不可能使小數(shù)部分成為0。此時(shí),可根據(jù)精度的要求取適當(dāng)?shù)男?shù)位數(shù)即可。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示13(3)非十進(jìn)制數(shù)之間的相互轉(zhuǎn)換八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法是:將每一位八進(jìn)制數(shù)直接寫(xiě)成相應(yīng)的3位二進(jìn)制數(shù)。二制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)的方法是:以小數(shù)點(diǎn)為界,向左或向右將每3位二進(jìn)制數(shù)分成一組,如果不足3位,則用0補(bǔ)足。然后,將每一組二進(jìn)制數(shù)直接寫(xiě)成相應(yīng)的1位八進(jìn)制數(shù)?!纠?-8】將八進(jìn)制數(shù)(425.67)8轉(zhuǎn)換成二進(jìn)制數(shù)。解:(425.67)8=(100010101.110111)2

【例2-9】將二進(jìn)制數(shù)(10101111.01101)2轉(zhuǎn)換成八進(jìn)制數(shù)。解:(10101111.01101)2=(010101111.011010)2=(257.32)82.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示14十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法是:將每一位十六進(jìn)制數(shù)直接寫(xiě)成相應(yīng)的4位二進(jìn)制數(shù)。二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)的方法是:以小數(shù)點(diǎn)為界,向左或向右將每4位二進(jìn)制數(shù)分成一組,如果不足4位,則用0補(bǔ)足。然后,將每一組二進(jìn)制數(shù)直接寫(xiě)成相應(yīng)的1位十六進(jìn)制數(shù)?!纠?-10】將十六進(jìn)制數(shù)(2C8)16轉(zhuǎn)換成二進(jìn)制數(shù)。解:(2C8)16=(001011001000)2

=(1011001000)2

【例2-11】將二進(jìn)制數(shù)(1011001.11)2轉(zhuǎn)換成十六進(jìn)制數(shù)。解:(1011001.11)2=(01011001.1100)2=(59.C)162.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示152.1.3整數(shù)在計(jì)算機(jī)中的表示數(shù)值型數(shù)據(jù)是人類用來(lái)表示數(shù)據(jù)大小的數(shù)據(jù),包括整數(shù)和實(shí)數(shù)兩種類型。整型包括正整數(shù)1、2、3、…、n、…,0(稱為零),負(fù)整數(shù)-1、-2、-3、…、-n、…,其中n為整數(shù)。整數(shù)是人類掌握的最基本的數(shù)學(xué)工具。在計(jì)算機(jī)中用二進(jìn)制數(shù)來(lái)表示整數(shù),采用無(wú)符號(hào)(稱為無(wú)符號(hào)整數(shù))和有符號(hào)(稱為有符號(hào)整數(shù))兩種形式。無(wú)符號(hào)整數(shù)只能表示正整數(shù)和0。有符號(hào)整數(shù)可以用來(lái)表示正整數(shù)、0和負(fù)整數(shù)。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示161.無(wú)符號(hào)整數(shù)的表示方法無(wú)符號(hào)整數(shù)的編碼與其數(shù)值相同。因此,無(wú)符號(hào)整數(shù)只能表示正整數(shù)或0?!纠?-12】假設(shè)二進(jìn)制數(shù)“01001011”表示的是一個(gè)無(wú)符號(hào)整數(shù),則該無(wú)符號(hào)整數(shù)的值是多少?解:01001011(二進(jìn)制數(shù))=0×27+1×26+0×25+0×24+1×23+0×22+1×21+1×20=0+64+0+0+8+0+2+1=75所以,二進(jìn)制數(shù)“01001011”所代表的無(wú)符號(hào)整數(shù)的值是75。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示172.有符號(hào)整數(shù)的表示方法(1)原碼表示法將數(shù)的符號(hào)數(shù)碼化,對(duì)于n位有符號(hào)整數(shù),用最高的一個(gè)二進(jìn)制位表示符號(hào):正數(shù)該位取0,負(fù)數(shù)該位取1。其余n-1位是數(shù)值位,存儲(chǔ)數(shù)的絕對(duì)值,如果絕對(duì)值不足n-1位,則在左側(cè)用0補(bǔ)齊?!纠?-13】假設(shè)x=,y=-1011011,z=-10110(=-0010110),寫(xiě)出x、y和z的8位原碼形式。解:[x]原=01011011[y]原=11011011[z]原=100101102.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示18可以從另一個(gè)角度來(lái)理解原碼。以n=8為例,其數(shù)值部分寫(xiě)成二進(jìn)制形式,最多為7位。當(dāng)要表示的整數(shù)x為正數(shù)時(shí),其原碼就是該數(shù)本身,第8位(符號(hào)位)補(bǔ)0;當(dāng)x為負(fù)數(shù)時(shí),第8位為1,等于該數(shù)的絕對(duì)值加上(10000000)2,即127。所以,8位原碼所能表示的整數(shù)范圍為:-127≤x≤127。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示19原碼表示法有如下特點(diǎn):直觀,與真值轉(zhuǎn)換很方便。進(jìn)行乘、除運(yùn)算方便。這是因?yàn)槠鋽?shù)值部分保持了數(shù)據(jù)的原有形式,對(duì)數(shù)值部分進(jìn)行乘或除運(yùn)算就可得到積或商的數(shù)值部分,而積或商的符號(hào)位可由兩個(gè)數(shù)原碼的符號(hào)位進(jìn)行邏輯運(yùn)算而得到。進(jìn)行加、減運(yùn)算比較麻煩。例如加法,兩個(gè)數(shù)相加需先判別符號(hào)位,若其不同,實(shí)際要做減法運(yùn)算,這時(shí)需再判斷絕對(duì)值的大小,用絕對(duì)值大的數(shù)減絕對(duì)值小的數(shù),最后還要決定結(jié)果的符號(hào)位。主要原因是符號(hào)位不能參與運(yùn)算。原碼有兩個(gè)0:+0(00000000)和-0(10000000)。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示20(2)補(bǔ)碼表示法據(jù)統(tǒng)計(jì),在所有的運(yùn)算中,加、減運(yùn)算要占到80%以上,因此,能否方便地進(jìn)行正、負(fù)數(shù)的加、減運(yùn)算,直接關(guān)系到計(jì)算機(jī)的運(yùn)行效率。一個(gè)非常重要的概念——?!澳!笔侵敢粋€(gè)計(jì)量系統(tǒng)的計(jì)數(shù)范圍,如時(shí)鐘等。例如,時(shí)鐘的計(jì)量范圍是0~11,模=12?!澳!睂?shí)質(zhì)上是計(jì)量器產(chǎn)生“溢出”的量,它的值在計(jì)量器上表示不出來(lái),計(jì)量器上只能表示出模的余數(shù)。任何有模的計(jì)量器,均可將減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示21例如,假設(shè)當(dāng)前時(shí)針指向10點(diǎn),而準(zhǔn)確時(shí)間是6點(diǎn),調(diào)整時(shí)間可有以下兩種撥法:一種是倒撥4小時(shí):10-4=6;另一種是順撥8小時(shí):10+8=12+6=6。在鐘表上,12相當(dāng)于0,超過(guò)12時(shí),12就丟失了。這種運(yùn)算稱為按模運(yùn)算。在以12為模的系統(tǒng)中,加8和減4效果是一樣的,因此凡是減4運(yùn)算,都可以用加8運(yùn)算來(lái)代替。所以,在以12為模的系統(tǒng)中,8和4互為補(bǔ)數(shù),11和1,10和2,9和3,7和5,6和6也都互為補(bǔ)數(shù),即相加等于模的兩個(gè)數(shù)互為補(bǔ)數(shù)。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示22計(jì)算機(jī)也可以看成是一個(gè)計(jì)量機(jī)器,它也有一個(gè)計(jì)量范圍,即都存在一個(gè)“?!?。n位計(jì)算機(jī),表示n位的計(jì)算機(jī)計(jì)量范圍是0~2n-1,模=2n。設(shè)n=8,所能表示的最大數(shù)是11111111,若再加1成為100000000(9位),但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進(jìn)制系統(tǒng)的模為28=256。同樣,在計(jì)算機(jī)中也可以采用按模運(yùn)算,可以將正數(shù)加負(fù)數(shù)(減法)轉(zhuǎn)化成正數(shù)加正數(shù)。例如,要將(15)和-0001100(-12)相加(實(shí)際是要做減法),先將-0001100與模10000000(256)相加,得到11110100(-12+256=244),再拿原被加數(shù)0001111(15)和11110100(-12的補(bǔ)數(shù))相加,得00000011(15+244=256+3=3),最高位的進(jìn)位,即模丟失。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示23可見(jiàn),在計(jì)算機(jī)中,將負(fù)數(shù)加模就可以轉(zhuǎn)化成正數(shù),使正數(shù)加負(fù)數(shù)轉(zhuǎn)化成正數(shù)加正數(shù)。把補(bǔ)數(shù)用到計(jì)算機(jī)對(duì)數(shù)據(jù)的處理上,就是補(bǔ)碼。在計(jì)算機(jī)系統(tǒng)中,正數(shù)的補(bǔ)碼就是它本身,符號(hào)位取0,即和原碼相同,負(fù)數(shù)的補(bǔ)碼是該負(fù)數(shù)加模的結(jié)果。補(bǔ)碼的求法:對(duì)正數(shù),補(bǔ)碼與原碼相同。對(duì)負(fù)數(shù),由上面的規(guī)則求補(bǔ)碼,需做減法,不方便。經(jīng)推導(dǎo)可知,負(fù)數(shù)的補(bǔ)碼等于其原碼除符號(hào)位外按位“求反”(1變0,0變1),末位再加1。提示:由求補(bǔ)碼的方法可以看出,對(duì)于補(bǔ)碼,其符號(hào)位和原碼的符號(hào)相同,也表示了真值的符號(hào),即正數(shù)的符號(hào)位為0,負(fù)數(shù)的符號(hào)位為1。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示24【例2-14】在計(jì)算機(jī)中用1個(gè)字節(jié)如何表示75。解:1個(gè)字節(jié)是8個(gè)二進(jìn)制位。由于75是正整數(shù),最高的1位符號(hào)位為0,表示正數(shù)。剩下的7位數(shù)值位用來(lái)表示75的值。由例2-12可知,75的值為1001011。所以在計(jì)算機(jī)中,用1個(gè)字節(jié)表示75的格式為:010010112.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示25【例2-15】在計(jì)算機(jī)中用1個(gè)字節(jié)如何表示-75。解:1個(gè)字節(jié)是8個(gè)二進(jìn)制位。由例2-12可知,75的值為1001011,所以,-75的原碼為11001011,下面求-75的補(bǔ)碼。①對(duì)后7位數(shù)值位1001011逐位取返,即0變1,1變0。原值:1001011

逐位取返:0110100②在末位加1。

0110100 01所以在計(jì)算機(jī)中,用1個(gè)字節(jié)表示-75的格式為:101101012.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示26補(bǔ)碼的性質(zhì):[x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ),即兩數(shù)之和的補(bǔ)碼等于各自補(bǔ)碼的和。[x-y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ),即兩數(shù)之差的補(bǔ)碼等于被減數(shù)的補(bǔ)碼與減數(shù)相反數(shù)的補(bǔ)碼之和。[[x]補(bǔ)]補(bǔ)=[x]原,即按求補(bǔ)的方法,對(duì)[x]補(bǔ)再求補(bǔ)一次,結(jié)果等于[x]原。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示27【例2-16】假設(shè)用8位表示有符號(hào)整數(shù)。已知X=107,Y=-41,求X+Y。解:[X]補(bǔ)=01101011[Y]補(bǔ)=11010111 [X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)

01101011

因?yàn)橛?jì)算機(jī)中運(yùn)算器的位長(zhǎng)是固定的8位,上述運(yùn)算中產(chǎn)生的最高位進(jìn)位自動(dòng)丟掉,所以:[X+Y]補(bǔ)=01000010由于最高位為0,其值為正,即[X+Y]原=[X+Y]補(bǔ)。由于1000010的值為66,所以:X+Y的值為662.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示28【例2-17】假設(shè)用8位表示有符號(hào)整數(shù)。已知X=41,Y=107,求X-Y。解: [X]補(bǔ)=00101001 [-Y]補(bǔ)=[-107]補(bǔ)=10010101 [X-Y]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)

00101001

由于[X-Y]補(bǔ)的最高位為1,其值為負(fù),對(duì)[X-Y]補(bǔ)求補(bǔ)得[X-Y]原=11000010。由于最高位為1,是負(fù)數(shù),1000010的值為66,所以:

X-Y的值為-66。表2-3是補(bǔ)碼表示整數(shù)的范圍。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示292.1.4實(shí)數(shù)在計(jì)算機(jī)中的表示實(shí)數(shù)可以用來(lái)表示連續(xù)的量。在實(shí)際運(yùn)用中,實(shí)數(shù)經(jīng)常被近似成一個(gè)有限小數(shù),即保留小數(shù)點(diǎn)后n位,n為正整數(shù)。我們已經(jīng)知道了如何在計(jì)算機(jī)中存儲(chǔ)沒(méi)有小數(shù)部分的數(shù)值數(shù)據(jù)。如果采用類似的格式來(lái)存實(shí)數(shù),由于能夠存儲(chǔ)的小數(shù)位數(shù)非常有限,這對(duì)于實(shí)數(shù)來(lái)說(shuō),是遠(yuǎn)遠(yuǎn)不夠的。因此,在計(jì)算機(jī)領(lǐng)域,一般采用浮點(diǎn)數(shù)的形式來(lái)近似地表示實(shí)數(shù)。具體的說(shuō),在計(jì)算機(jī)中,表示一個(gè)實(shí)數(shù)的浮點(diǎn)數(shù)a是一個(gè)整數(shù)M乘以2的整數(shù)次冪E構(gòu)成:其中:s為數(shù)值的符號(hào),稱為數(shù)符,M為數(shù)值的精度,稱為尾數(shù),指數(shù)E稱為階碼。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示30每一個(gè)浮點(diǎn)數(shù)都包含數(shù)符、尾數(shù)和階碼三部分。最常用的浮點(diǎn)數(shù)格式之一就是IEEE754國(guó)際標(biāo)準(zhǔn)。IEEE754規(guī)定:尾數(shù)M采用原碼表示尾數(shù)采用二進(jìn)制的規(guī)格化方法

階碼E用移碼表示(即在真值上增加一個(gè)偏置值)由于同一個(gè)浮點(diǎn)數(shù)的表示不是唯一的,例如十進(jìn)制數(shù)0.75可以表示成多種形式:11.0×2-21.1×2-10.11×200.011×210.0011×22

……2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示因此,浮點(diǎn)數(shù)都采用二進(jìn)制數(shù)的規(guī)格化格式。規(guī)格化浮點(diǎn)數(shù)的規(guī)定為:尾數(shù)的最高有效位為1。為了提高浮點(diǎn)數(shù)的表示數(shù)據(jù)精度,最高位不會(huì)被存儲(chǔ),只存儲(chǔ)尾數(shù)的小數(shù)部分。31下表是IEEE754規(guī)定的32位和64位浮點(diǎn)數(shù)的格式和能夠表示的數(shù)據(jù)范圍。2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示類

型二進(jìn)制位數(shù)移碼表數(shù)范圍數(shù)符(s)階碼(E)尾數(shù)(M)總位數(shù)偏置值最小值最大值單精度浮點(diǎn)數(shù)(float)1位8位23位32位127–3.4×10383.4×1038雙精度浮點(diǎn)數(shù)(double)1位11位52位64位1023–1.7×103081.7×1030832【例2-18】寫(xiě)出數(shù)值-0.75按IEEE754的單精度浮點(diǎn)數(shù)的存儲(chǔ)格式。解:①先將-0.75換成二進(jìn)制并寫(xiě)成標(biāo)準(zhǔn)化形式:-0.75(10進(jìn)制)=-0.11(2進(jìn)制)=-1.1×2-1(2進(jìn)制)②下面確定s,M和E由于是負(fù)數(shù),所以s=1;尾數(shù)1.1整數(shù)位的1被隱含,且M是23位,所以: M=00000000000000000000001;[E]移=[E]真值+127=-1+127=126(10進(jìn)制)=01111110(2進(jìn)制);所以,-0.75按IEEE754的單精度浮點(diǎn)數(shù)的存儲(chǔ)格式為:

2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示33[E]移=[E]真值+127=-1+127=126(10進(jìn)制)=01111110(2進(jìn)制);所以,-0.75按IEEE754的單精度浮點(diǎn)數(shù)的存儲(chǔ)格式為:

2.1數(shù)值型數(shù)據(jù)在計(jì)算機(jī)中的表示10111111000000000000000000000001數(shù)符階

碼尾

數(shù)342.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示2.2.1字符型數(shù)據(jù)在計(jì)算機(jī)中的表示1.字符字符型數(shù)據(jù)也是人們常用的基本數(shù)據(jù)。主要包括計(jì)算機(jī)鍵盤(pán)上的英文字符、數(shù)字字符、各種標(biāo)點(diǎn)符號(hào)等文本符號(hào)。當(dāng)在鍵盤(pán)上輸入一個(gè)文本符號(hào)時(shí),每一個(gè)符號(hào)都會(huì)以一個(gè)二進(jìn)制的形式存儲(chǔ)在計(jì)算機(jī)中。為了在一臺(tái)計(jì)算機(jī)上存儲(chǔ)的字符也能夠在另一臺(tái)計(jì)算機(jī)上正常顯示,就需要給這些字符進(jìn)行統(tǒng)一編碼。在世界范圍內(nèi)通用的字符編碼標(biāo)準(zhǔn)是ASCII(AmericanStandardCodeforInformationInterchange)碼。352.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示ASCII碼使用1個(gè)字節(jié),最高位為0,使用00000000~01111111為常用的128個(gè)字符編碼。字符編碼0~31以及127是不可打印字符,字符編碼32是空格。本書(shū)配套教材《計(jì)算基礎(chǔ)(C++語(yǔ)言實(shí)現(xiàn))——上機(jī)實(shí)習(xí)及習(xí)題集)》的附錄B中,列出了ASCII編碼及對(duì)應(yīng)的字符。雖然字符是以二進(jìn)制的ASCII編碼存儲(chǔ)在計(jì)算機(jī)中的,我們經(jīng)常用十進(jìn)制和十六進(jìn)制的形式來(lái)使用ASCII碼。例如,字符G的ASCII碼是71,意味著在計(jì)算機(jī)中用01000111來(lái)表示字符G,即G在計(jì)算機(jī)中以二進(jìn)制序列01000111的形式被存儲(chǔ)。362.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示2.漢字計(jì)算機(jī)中漢字的表示也是必須采用二進(jìn)制編碼。根據(jù)應(yīng)用目的的不同,漢字編碼分為外碼、交換碼、機(jī)內(nèi)碼和字形碼。(1)輸入碼輸入碼屬于外碼,是用來(lái)將漢字輸入到計(jì)算機(jī)中的一組鍵盤(pán)符號(hào)。目前常用的輸入碼有拼音碼、五筆字型碼、自然碼、表形碼、認(rèn)知碼、區(qū)位碼和電報(bào)碼等,一種好的編碼應(yīng)有編碼規(guī)則簡(jiǎn)單、易學(xué)好記、操作方便、重碼率低、輸入速度快等優(yōu)點(diǎn),每個(gè)人可根據(jù)自己的需要進(jìn)行選擇。372.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示(2)國(guó)標(biāo)碼漢字交換碼是指不同的具有漢字處理功能的計(jì)算機(jī)系統(tǒng)之間在交換漢字信息時(shí)所使用的代碼標(biāo)準(zhǔn)。中國(guó)標(biāo)準(zhǔn)總局于1981年制定了中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)GB2312—80《信息交換用漢字編碼字符集——基本集》,即國(guó)標(biāo)碼。該標(biāo)準(zhǔn)共收集常用漢字和符號(hào)7445個(gè),其中一級(jí)漢字3755個(gè),按拼音排序;二級(jí)漢字3008個(gè),按部首排序;還有圖形符號(hào)682個(gè)。國(guó)標(biāo)碼使用兩個(gè)字節(jié)來(lái)表示一個(gè)漢字或圖形符號(hào),每個(gè)字節(jié)與ASCII碼一樣,只是用低7位,即第8位為0。例如,“啊”的編碼為3021H。382.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示由于漢字處理系統(tǒng)要和英文處理系統(tǒng)兼容,當(dāng)ASCII和國(guó)標(biāo)碼同時(shí)出現(xiàn)在系統(tǒng)中時(shí),會(huì)產(chǎn)生二義性。例如,編碼為3021H可以理解為中文“啊”,也可易理解為字符“0”和字符“!”的兩個(gè)字符。因此,漢字的國(guó)標(biāo)碼需要經(jīng)過(guò)適當(dāng)?shù)淖儞Q后,才能存儲(chǔ)在計(jì)算機(jī)中。這就是漢字的機(jī)內(nèi)碼或內(nèi)碼。392.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示(3)機(jī)內(nèi)碼常用的漢字機(jī)內(nèi)碼是對(duì)漢字國(guó)標(biāo)碼加上8080H,使每一個(gè)字節(jié)的第8位都變成1。由于ASCII碼的最高位是0,這樣就不會(huì)再產(chǎn)生二義性了。例如,“啊”的機(jī)內(nèi)碼為國(guó)標(biāo)碼H:0001=3021H=8080H1011000010100001=B0A1H每一個(gè)漢字和常用字符圖形在計(jì)算機(jī)內(nèi)部都用漢字機(jī)內(nèi)碼存儲(chǔ),在磁盤(pán)上記錄它們也使用機(jī)內(nèi)碼。402.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示(4)字型碼漢字字型碼又稱漢字字模,用于在顯示屏或打印機(jī)輸出漢字。漢字字型碼通常有兩種表示方式:點(diǎn)陣表示方式和矢量表示方式。用點(diǎn)陣表示字型時(shí),漢字字型碼指的是這個(gè)漢字字型點(diǎn)陣的代碼。根據(jù)輸出漢字的要求不同,點(diǎn)陣的多少也不同。簡(jiǎn)易型漢字為16×16點(diǎn)陣,提高型漢字為24×24點(diǎn)陣,32×32點(diǎn)陣,48×48點(diǎn)陣等。點(diǎn)陣規(guī)模愈大,字型愈清晰美觀,所占存儲(chǔ)空間也愈大。矢量表示方式存儲(chǔ)的是描述漢字字型的輪廓特征,當(dāng)要輸出漢字時(shí),通過(guò)計(jì)算機(jī)的計(jì)算,由漢字字型描述生成所需大小和形狀的漢字點(diǎn)陣。矢量化字型描述與最終文字顯示的大小,分辨率無(wú)關(guān),因此可以產(chǎn)生高質(zhì)量的漢字輸出。Windows中使用的TrueType技術(shù)就是漢字的矢量表示方式。412.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示3.字符串字符串是指一串連續(xù)的字符。例如,“Hello李明”,“大家晚上好!”等??刹捎脙煞N方法在內(nèi)存中存儲(chǔ)字符串。表示字符串的一個(gè)常用方法是向量法。向量法是在內(nèi)存使用一片連續(xù)的空間來(lái)存放字符或漢字的編碼,字符串中邏輯上連續(xù)的字符在物理上也是連續(xù)的。內(nèi)存的存儲(chǔ)單元以字節(jié)為單位,所以,一個(gè)存儲(chǔ)單元能夠存儲(chǔ)一個(gè)ASCII字符,兩個(gè)存儲(chǔ)單元能存儲(chǔ)一個(gè)漢字。例如,“Hello李明”在內(nèi)存中的存儲(chǔ)情況如下表所示。存儲(chǔ)單元…ii+1i+2i+3i+4i+5i+6i+7i+8i+9…編碼(16進(jìn)制)…486520C0EEC3F7…代表的字符…Hello空格李明…422.2非數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的表示2.2.2邏輯型數(shù)據(jù)在計(jì)算機(jī)中的表示邏輯型數(shù)據(jù)只有“邏輯真”和“邏輯假”兩個(gè)值,根據(jù)在計(jì)算機(jī)中只存儲(chǔ)0和1兩個(gè)數(shù)碼的特點(diǎn),很容易表示邏輯數(shù)據(jù)。即用1來(lái)表示“邏輯真”,用0來(lái)表示“邏輯假”。因此,不需要為邏輯型數(shù)據(jù)進(jìn)行特殊的編碼。432.3C++語(yǔ)言表示基本的數(shù)據(jù)類型對(duì)于前面的基本數(shù)據(jù)類型,如整型、浮點(diǎn)型、字符型和邏輯型等,C++語(yǔ)言已預(yù)先解決了這些基本數(shù)據(jù)在計(jì)算機(jī)中如何表示、占用多少存儲(chǔ)空間以及可以進(jìn)行的操作等問(wèn)題,程序員只需要以變量和常量的形式,就可以直接使用這些基本數(shù)據(jù)類型的數(shù)據(jù)來(lái)描述和處理自己的問(wèn)題。442.3C++語(yǔ)言表示基本的數(shù)據(jù)類型2.3.1C++的基本數(shù)據(jù)類型下表是C++提供的常用基本數(shù)據(jù)類型的關(guān)鍵字、占用的存儲(chǔ)空間。以后使用時(shí),要注意書(shū)中的提示?;緮?shù)據(jù)類型表示形式C++中相應(yīng)的類型標(biāo)識(shí)符占用空間(字節(jié))邏輯型邏輯型bool1字符型字符型char1整型有符號(hào)整型short2int4無(wú)符號(hào)整型unsignedshort2unsignedint4實(shí)型單精度浮點(diǎn)型float4雙精度浮點(diǎn)型double8452.3C++語(yǔ)言表示基本的數(shù)據(jù)類型2.3.2使用C++基本的數(shù)據(jù)類型在C++的程序中,以變量和常量的形式來(lái)使用基本的數(shù)據(jù)類型。1.常量常量是在程序運(yùn)行過(guò)程中保持不變的數(shù)據(jù)。根據(jù)書(shū)寫(xiě)形式,可將常量分為直接常量和符號(hào)常量。直接常量就是通常所說(shuō)的常數(shù),在表達(dá)式中直接以常數(shù)的形式給出。(1)整型直接常量,例如:1000、-1000、0、123456L、54321U還可以0x或0X開(kāi)頭表示十六進(jìn)制整型常量,例如:0xFFFF、0xD4AF、0X1000提示:C++中默認(rèn)的整型常量的數(shù)據(jù)類型是int型,所以長(zhǎng)整型和無(wú)符號(hào)整型常量以字母L或l和字母U或u結(jié)尾。462.3C++語(yǔ)言表示基本的數(shù)據(jù)類型(2)浮點(diǎn)型直接常量十進(jìn)制數(shù)形式,例如:3.1415、322345.34、5.8265、10.0、1.2345f指數(shù)形式,例如:1.25e6或1.25E6,它們都代表1.25×106提示:C++中默認(rèn)的浮點(diǎn)型常量的數(shù)據(jù)類型是double型,所以float型常量以字母F或f結(jié)尾。指數(shù)形式的浮點(diǎn)型常量字母E或e前面必須有數(shù)字,并且E或e后面的指數(shù)必須是整數(shù)。472.3C++語(yǔ)言表示基本的數(shù)據(jù)類型(3)字符型直接常量在C++中,用一對(duì)單引號(hào)將字符括起來(lái)表示字符常量。其中單引號(hào)只是字符與其他部分的分隔符,不是字符的一部分。例如:'a'、'A'、'*'、'1'、'0'注意:'a'和'A'是不同的字符常量;'1'和'0'是字符1和字符0,而不是數(shù)值。482.3C++語(yǔ)言表示基本的數(shù)據(jù)類型(4)字符串型直接常量在C++中,字符串常量的表示方法是用一對(duì)雙引號(hào)將字符串括起來(lái)。其中的雙引號(hào)同樣是分隔符,不是字符串的一部分。C++字符集中的字符和其他字符,以及漢字和中文標(biāo)點(diǎn)符號(hào)等,都可以出現(xiàn)在字符串中。例如:"Hello李明""大家晚上好!"提示:在C++中,存儲(chǔ)字符串常量采用的是向量法。為了能夠識(shí)別字符串結(jié)束位置,C++系統(tǒng)會(huì)在字符串的末尾自動(dòng)添加一個(gè)ASCII編碼為00H的字符(也稱空字符或'\0')作為字符串的結(jié)束符,所以每個(gè)字符串的存儲(chǔ)長(zhǎng)度總是比其實(shí)際長(zhǎng)度(字符個(gè)數(shù))多1。492.3C++語(yǔ)言表示基本的數(shù)據(jù)類型(5)邏輯型直接常量C++中的邏輯型也只有兩個(gè)值:true和false,它們分別表示“邏輯真”和“邏輯假”。(6)符號(hào)常量符號(hào)常量,也稱const常量,是用來(lái)表示一個(gè)常量的標(biāo)識(shí)符。定義const常量的語(yǔ)法格式為:const<類型><常量名>=<表達(dá)式>;例如: constdoublePI=3.1415926;提示:在程序中使用符號(hào)常量可以提高程序的可讀性和可維護(hù)性。例如將數(shù)值計(jì)算中經(jīng)常使用的一些參數(shù)定義為符號(hào)常量,當(dāng)需要改變參數(shù)數(shù)值時(shí),只需要更改符號(hào)常量的定義語(yǔ)句就行了。在編程時(shí),無(wú)論是符號(hào)常量還是后面將要介紹的變量,都必須“先定義,后使用”。502.3C++語(yǔ)言表示基本的數(shù)據(jù)類型2.變量變量是在程序運(yùn)行過(guò)程中可以發(fā)生變化的數(shù)據(jù)。通過(guò)變量的引入,可以簡(jiǎn)化程序員直接使用內(nèi)存地址來(lái)操作數(shù)據(jù)的工作。用變量來(lái)存儲(chǔ)程序中需要處理的數(shù)據(jù),可在程序中根據(jù)需要隨時(shí)改變變量的值,所以比常量更靈活。應(yīng)用程序中變量的使用遠(yuǎn)遠(yuǎn)多于常量。①變量的定義變量必須“先定義,后使用”。C++中定義變量的語(yǔ)法格式為:<類型名或類型定義><變量1>[,<變量2>,…,<變量n>];例如:

intlength; doublelength,width,height; charc1,c2,c3; longi,j,k;512.3C++語(yǔ)言表示基本的數(shù)據(jù)類型②變量的初始化在定義變量的同時(shí)可以為其賦一個(gè)初值,稱為變量初始化。在C++中,變量初始化有兩種形式,使用賦值運(yùn)算符或使用圓括號(hào)。例如:

intnum=100;//定義整型變量num,初值為100

charc1='0';//定義字符型變量c1,初值為字符0

doublex(16578.543); //定義雙精度浮點(diǎn)型變量x,且初值為16578.543

inti,j,total(0); //定義整型變量i、j、total,且變量total的初值為0522.4基本數(shù)據(jù)的處理對(duì)于基本數(shù)據(jù),可以通過(guò)運(yùn)算符組成相應(yīng)的表達(dá)式,實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理。常用的基本運(yùn)算包括算數(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算以及這些運(yùn)算的組合。C++語(yǔ)言提供了豐富的運(yùn)算符,絕大部分運(yùn)算符的含義與數(shù)學(xué)上各類運(yùn)算符的含義相同。學(xué)習(xí)了C++提供的基本運(yùn)算符和表達(dá)式后,就可以直接使用它們來(lái)設(shè)計(jì)求解問(wèn)題的算法、編寫(xiě)C++程序、實(shí)現(xiàn)問(wèn)題的求解了。532.4基本數(shù)據(jù)的處理2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式C++語(yǔ)言中支持的算術(shù)運(yùn)算符及算數(shù)表達(dá)式如下表所示。假設(shè)已經(jīng)定義了變量:intm=10,n=5;doublex=2.5,y=1.3;

intm=10,n=5; doublex=2.5,y=1.3;運(yùn)算符含

義功

能舉例運(yùn)算結(jié)果+加法兩個(gè)數(shù)相加m+515-減法兩個(gè)數(shù)相減x-y0.8*乘法兩個(gè)數(shù)相乘2*n10/除法兩個(gè)數(shù)相除m/n2%模運(yùn)算求余數(shù)m%31++先增1變量自身加1,表達(dá)式的值與變量的值相同++nn的值為6,表達(dá)式“++n”的值為6--先減1變量自身減1,表達(dá)式的值與變量的值相同--mm的值為9,表達(dá)式“--m”的值為9542.3C++語(yǔ)言表示基本的數(shù)據(jù)類型提示:兩個(gè)整數(shù)相除,商為整數(shù),小數(shù)部分全部舍去,不進(jìn)行四舍五入。例如,1/3的結(jié)果為0,5/3結(jié)果為1。求余運(yùn)算要求兩個(gè)操作數(shù)都必須是整型。例如,10%3的余數(shù)是1,-10%3的余數(shù)是-1。++和--運(yùn)算符都有前綴和后綴兩種形式,都是對(duì)變量自身加1或減1,但前綴和后綴運(yùn)算符都是有副作用的運(yùn)算符,當(dāng)出現(xiàn)在表達(dá)式中,表達(dá)式的值會(huì)有所不同。請(qǐng)參考2.5.4節(jié)內(nèi)容。552.3C++語(yǔ)言表示基本的數(shù)據(jù)類型2.4.2賦值運(yùn)算符與賦值表達(dá)式在C++中使用賦值運(yùn)算符=來(lái)實(shí)現(xiàn)賦值運(yùn)算。由賦值運(yùn)算符構(gòu)成的賦值表達(dá)式的一般形式為:<變量名>=<表達(dá)式>該表達(dá)式的含義是:首先計(jì)算賦值運(yùn)算符右面<表達(dá)式>的值,然后將值賦給左面的變量。可見(jiàn),賦值表達(dá)式具有計(jì)算和賦值雙重功能。除了賦值運(yùn)算符=外,C++還提供了10種復(fù)合賦值運(yùn)算符。提示:賦值運(yùn)算符“=”不是數(shù)學(xué)上的等號(hào)。562.3C++語(yǔ)言表示基本的數(shù)據(jù)類型【例2-19】已知一個(gè)圓的半徑是5cm,計(jì)算這個(gè)圓的周長(zhǎng)和面積。問(wèn)題求解思路:計(jì)算圓的周長(zhǎng)和面積的公式是:2πr和πr2。本例r=5,直接帶入公式即可完成問(wèn)題求解,使用C++的cout將結(jié)果輸出到屏幕上。#include<iostream>usingnamespacestd;intmain(){ constdoublePI=3.14; //用const定義符號(hào)常量PI cout<<"圓的周長(zhǎng)是:"

<<2*3.14*5<<endl;

//使用直接常量2、3.14和5 cout<<"圓的面積是:"

<<PI*5*5<<endl;

//使用直接常量5和符號(hào)常量PI return0;}572.3C++語(yǔ)言表示基本的數(shù)據(jù)類型【例2-20】計(jì)算任意一個(gè)圓的周長(zhǎng)和面積。問(wèn)題求解思路:計(jì)算圓的周長(zhǎng)和面積的公式是:2πr和πr2。由于是任意圓,所以在程序中可定義一個(gè)變量r,用來(lái)接收和存儲(chǔ)用戶從鍵盤(pán)輸入的圓的半徑。然后利用公式計(jì)算并輸出圓的周長(zhǎng)和面積。//testVariable.cpp#include<iostream>usingnamespacestd;intmain(){ constdoublePI=3.14; doubler; //聲明表示圓的半徑的變量 cout<<"請(qǐng)輸入圓的半徑:"; cin>>r; //輸入圓的半徑 cout

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論