數(shù)據(jù)是計(jì)算機(jī)處理的對象。數(shù)有大小和正負(fù)之分,還有不同的進(jìn)位計(jì)數(shù)制。在計(jì)算機(jī)中采用什么樣的計(jì)數(shù)制,是學(xué)習(xí)計(jì)算機(jī)時(shí)首先遇到的一個(gè)重要問題。
1 豐富多彩的數(shù)制
在人類歷史發(fā)展的長河中,先后出現(xiàn)過多種不同的記數(shù)方法,其中有一些我們至今仍在使用當(dāng)中,例如十進(jìn)制和六十進(jìn)制。如今,大多數(shù)人使用的數(shù)字系統(tǒng)是基于10的。這種情況并不奇怪,因?yàn)樽畛跞藗兪怯檬种竵頂?shù)數(shù)的,要是人類進(jìn)化成8個(gè)或12個(gè)手指,也許人類計(jì)數(shù)的方式會(huì)有所不同。英語單詞Digit(數(shù)字)可以指手指或腳趾,單詞five(五)和單詞fist(拳頭)有相同的詞根,出現(xiàn)這種情況并不是巧合。
與十進(jìn)制不同,古代巴比倫人則是使用以60為基數(shù)的六十進(jìn)制數(shù)字體系,六十進(jìn)制迄今為止仍用于計(jì)時(shí)。使用六十進(jìn)制,巴比倫人把75表示成“1,15”,這和我們把75分鐘寫成1小時(shí)15分鐘是一樣的。
中美洲的瑪雅人使用二十進(jìn)制數(shù),但又不是一種規(guī)則的二十進(jìn)制。真正的二十進(jìn)制應(yīng)該是以1,20,202,203等順序增加數(shù)目,而瑪雅體系使用的序列是1,20,18×20,18×202等等,這使得一些計(jì)算變得復(fù)雜。
在早期的數(shù)字系統(tǒng)中,還有一種非常著名的羅馬數(shù)字沿用至今。鐘表的表盤上常常使用羅馬數(shù)字,此外,它還用來在紀(jì)念碑和雕像上標(biāo)注日期,標(biāo)注書的頁碼,或作為提綱條目的標(biāo)記?,F(xiàn)在仍在使用的羅馬數(shù)字有I、V、X、L、C、D、M,其中I表示1,V表示5,X表示10,L表示50,C表示100,D表示500,M表示1000。
很長一段時(shí)間以來,羅馬數(shù)字被認(rèn)為用來做加減法運(yùn)算非常容易,這也是羅馬數(shù)字能夠在歐洲被長期用于記帳的原因。但使用羅馬數(shù)字做乘除法則是很難的。其實(shí),許多早期出現(xiàn)的數(shù)字系統(tǒng)和羅馬數(shù)字系統(tǒng)相似,它們在做復(fù)雜運(yùn)算時(shí)存在一定的不足,隨著時(shí)間的發(fā)展,逐漸被淘汰掉了。
2 進(jìn)位計(jì)數(shù)制和非進(jìn)位計(jì)數(shù)制
對多種數(shù)制進(jìn)行分析后,可將數(shù)制分為非進(jìn)位計(jì)數(shù)制和進(jìn)位計(jì)數(shù)制兩種。
1)非進(jìn)位計(jì)數(shù)制及其特點(diǎn)
非進(jìn)位計(jì)數(shù)制的特點(diǎn)是:表示數(shù)值大小的數(shù)碼與它在數(shù)中的位置無關(guān)。
典型的非進(jìn)位計(jì)數(shù)制是羅馬數(shù)字。例如,在羅馬數(shù)字中:Ⅰ總是代表1,Ⅱ總是代表2,Ⅲ總是代表3,Ⅳ總是代表4,Ⅴ總是代表5等。非進(jìn)位計(jì)數(shù)制表示數(shù)據(jù)不便、運(yùn)算困難,現(xiàn)已基本不用。
2)進(jìn)位計(jì)數(shù)制及其特點(diǎn)
進(jìn)位計(jì)數(shù)制的特點(diǎn)是:表示數(shù)值大小的數(shù)碼與它在數(shù)中所處的位置有關(guān)。
例如,十進(jìn)制數(shù)123.45,數(shù)碼1處于百位上,它代表1×102=100,即1所處的位置具有102權(quán);2處于十位上,它代表2×101=20,即2所處的位置具有101權(quán);3代表3×100=3;而4處于小數(shù)點(diǎn)后第一位,代表4×10-1=0.4;最低位5處于小數(shù)點(diǎn)后第二位,代表5×10-2=0.05。
如上所述,數(shù)據(jù)用少量的數(shù)字符號按先后位置排列成數(shù)位,并按照由低到高的進(jìn)位方式進(jìn)行計(jì)數(shù),我們將這種表示數(shù)的方法稱之為進(jìn)位計(jì)數(shù)制。
在進(jìn)位計(jì)數(shù)制中,每種數(shù)制都包含有兩個(gè)基本要素。
基數(shù):計(jì)數(shù)制中所用到的數(shù)字符號的個(gè)數(shù)。例如,十進(jìn)制的基數(shù)為10。
位權(quán):一個(gè)數(shù)字符號處在某個(gè)位上所代表的數(shù)值是其本身的數(shù)值乘上所處數(shù)位的一個(gè)固定常數(shù),這個(gè)不同數(shù)位的固定常數(shù)稱為位權(quán)。
3 計(jì)算機(jī)科學(xué)中的常用數(shù)制
在計(jì)算機(jī)科學(xué)中,常用的數(shù)制是十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制四種。
人們習(xí)慣于采用十進(jìn)位計(jì)數(shù)制,簡稱十進(jìn)制。但是由于技術(shù)上的原因,計(jì)算機(jī)內(nèi)部一律采用二進(jìn)制表示數(shù)據(jù),而在編程中又經(jīng)常使用十進(jìn)制,有時(shí)為了表述上的方便還會(huì)使用八進(jìn)制或十六進(jìn)制。因此,了解不同計(jì)數(shù)制及其相互轉(zhuǎn)換是十分重要的。
1)十進(jìn)制數(shù)及其特點(diǎn)
十進(jìn)制數(shù)(Decimal notation)的基本特點(diǎn)是基數(shù)為10,用十個(gè)數(shù)碼0,1,2,3,4,5,6,7,8,9來表示,且逢十進(jìn)一,因此對于一個(gè)十進(jìn)制數(shù),各位的位權(quán)是以10為底的冪。
例如,我們可以將十進(jìn)制數(shù)(2836.52)10表示為:
(2836.52)10=2×103+8×102+3×101+6×100+5×10-1+2×10-2
這個(gè)式子我們稱之為十進(jìn)制數(shù)2836.52的按位權(quán)展開式。
2)二進(jìn)制數(shù)及其特點(diǎn)
二進(jìn)制數(shù)(Binary notation)的基本特點(diǎn)是基數(shù)為2,用兩個(gè)數(shù)碼0,1來表示,且逢二進(jìn)一,因此,對于 一個(gè)二進(jìn)制的數(shù)而言,各位的位權(quán)是以2為底的冪。
例如:二進(jìn)制數(shù)(110.101)2可以表示為:
(110.101)2=1×22 +1×21 +0×20+1×2-1+0×2-2 +1×2-3
3) 八進(jìn)制數(shù)及其特點(diǎn)
八進(jìn)制數(shù)(Octal notation)的基本特點(diǎn)是基數(shù)為8,用0,1,2,3,4,5,6,7八個(gè)數(shù)字符號來表示,且逢八進(jìn)一,因此,各位的位權(quán)是以8為底的冪。
例如:八進(jìn)制數(shù)(16.24)8可以表示為:
(16.24)8=1×81 +6×80 +2×8-1+4×8-2
4) 十六進(jìn)制數(shù)及其特點(diǎn)
十六進(jìn)制數(shù)(Hexadecimal notation)的基本特點(diǎn)是基數(shù)為16,用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)十六個(gè)數(shù)字符號來表示,且逢16進(jìn)一,因此,各位的位權(quán)是以16為底的冪。
例如:十六進(jìn)制數(shù)(5E.A7)16可以表示為:
(5E.A7)16=5×161+E×160 + A×16-1 +7×16-2
5) R進(jìn)制數(shù)及其特點(diǎn)
擴(kuò)展到一般形式,一個(gè)R進(jìn)制數(shù),基數(shù)為R,用0,1,…,R-1共R個(gè)數(shù)字符號來表示,且逢R進(jìn)一,因此,各位的位權(quán)是以R為底的冪。
一個(gè)R進(jìn)制數(shù)的按位權(quán)展開式為:
(N)R=kn×Rn+kn-1×Rn-1 +…+k0×R0 +k-1×R-1 +k-2×R-2+…+k-m×R-m
當(dāng)各種計(jì)數(shù)制同時(shí)出現(xiàn)的時(shí)候,可以用下標(biāo)加以區(qū)別,也有根據(jù)其英文的縮寫,將(2836.52)10表示為2836.52D,將(110.101)2、(16.24)8、(5E.7)16分別表示為110.101B、16.24O、5E.A7H。