官术网_书友最值得收藏!

1.2.3 數(shù)據(jù)的表示與數(shù)制

1.二進(jìn)制數(shù)據(jù)的表示

二進(jìn)制具有物理實(shí)現(xiàn)性價(jià)比高、運(yùn)算法則簡(jiǎn)單,容易存儲(chǔ)等優(yōu)點(diǎn)。計(jì)算機(jī)如何在物理上表示二進(jìn)制呢?主要的方法還是采用電信號(hào)表示,高電壓表示1,低電壓表示0,如圖1-24所示。

圖1-24 二進(jìn)制方波表示

2.數(shù)制

數(shù)制不僅是計(jì)算機(jī)出現(xiàn)時(shí)才有的,實(shí)際上中國除了使用十進(jìn)制外,還有十六進(jìn)制,1949年以前使用的稱量衡器,就是十六兩等于一斤,所以才有“半斤八兩”這個(gè)成語。在時(shí)間上采用的是60進(jìn)制,60秒等于1分鐘。這些進(jìn)制的產(chǎn)生有著其歷史和客觀的原因,有些已經(jīng)形成習(xí)慣。

由于計(jì)算機(jī)內(nèi)部采用的是二進(jìn)制編碼,但計(jì)算機(jī)與外部的信息交流依然采用大家所熟悉和習(xí)慣的形式,通常采用十進(jìn)制數(shù)據(jù)來表示數(shù)值。這樣計(jì)算機(jī)和人之間就必須要通過“翻譯”。二進(jìn)制和十進(jìn)制之間的“翻譯”是需要損耗系統(tǒng)資源的,尤其是時(shí)間的代價(jià)。下面介紹幾個(gè)概念:

數(shù)制:按進(jìn)位的方法進(jìn)行計(jì)數(shù),稱為進(jìn)位計(jì)數(shù)制,簡(jiǎn)稱數(shù)制。如果某個(gè)數(shù)制采用R個(gè)基本符號(hào),則稱其為基R數(shù)制,R稱為數(shù)制的基數(shù)。不同的數(shù)制在基數(shù)規(guī)則、進(jìn)位規(guī)則、位權(quán)規(guī)則和運(yùn)算規(guī)則等方面也不相同。

基數(shù):是指某種數(shù)制中可能用到的計(jì)數(shù)符號(hào)的個(gè)數(shù)。如十進(jìn)制數(shù)有0~9十個(gè)基數(shù)。

位權(quán):不同位數(shù)上的計(jì)數(shù)符號(hào)所表示的數(shù)值大小是不同的,它的實(shí)際數(shù)值是計(jì)數(shù)符號(hào)乘以某一固定的常數(shù),這個(gè)常數(shù)稱為位權(quán),簡(jiǎn)稱權(quán)。如25=2×101+5×100,101和00

分別為對(duì)應(yīng)位的位權(quán)。

進(jìn)位:如十進(jìn)制數(shù)是逢十進(jìn)一,二進(jìn)制數(shù)是逢二進(jìn)一,等等。

任何一種進(jìn)位制都可以用下面的規(guī)則來描述:基數(shù)規(guī)則、進(jìn)位規(guī)則、位權(quán)規(guī)則、運(yùn)算規(guī)則。常用的數(shù)制有十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制。它們的特點(diǎn)如表1-2所示。

表1-2 四種數(shù)制的特點(diǎn)比較

例如,(256.15)D=2×102+5×101+6×100+1×10-1+5×10-2

(1101)B=1×23+1×22+0×21+1×20

3.數(shù)制之間的轉(zhuǎn)換

在計(jì)算機(jī)內(nèi)部的運(yùn)算采用二進(jìn)制數(shù),但人們的習(xí)慣是十進(jìn)制數(shù),為了方便,在輸入和輸出采用十進(jìn)制數(shù),由計(jì)算機(jī)完成二進(jìn)制與十進(jìn)制之間的轉(zhuǎn)換。這就需要了解不同數(shù)制間的轉(zhuǎn)換問題。表1-3所示為常用計(jì)數(shù)制數(shù)之間的對(duì)應(yīng)關(guān)系。

表1-3 常用計(jì)數(shù)制數(shù)之間的對(duì)應(yīng)關(guān)系

(1)R進(jìn)制轉(zhuǎn)換為十進(jìn)制

方法:按權(quán)展開求和

基數(shù)為R的數(shù)值,只需將各位數(shù)字與相應(yīng)的權(quán)值相乘,再將其積相加后,各數(shù)就是對(duì)應(yīng)的十進(jìn)制值。

【例1】二進(jìn)制轉(zhuǎn)換為十進(jìn)制。

(110101.0101)B=1×25+1×24+0×23+1×22+0×21+1×20+0×2-1+1×2-2+0×2-3+1×2-4

        =(53.3125)D

【例2】八進(jìn)制轉(zhuǎn)換為十進(jìn)制:

(3506.2)O=3×83+5×82+0×81+6×80+2×8-1=(1862.25)D

【例3】十六進(jìn)制轉(zhuǎn)換為十進(jìn)制。

(71.E)H=7×161+1×160+E×16-1=(113.875)D

各種數(shù)制轉(zhuǎn)換成十進(jìn)制的方法:按權(quán)展開。

(2)十進(jìn)制轉(zhuǎn)換為R進(jìn)制

將十進(jìn)制轉(zhuǎn)換為基數(shù)為R的數(shù)制時(shí),將其整數(shù)部分和小數(shù)部分分別加以轉(zhuǎn)換,然后再合并起來即可。

十進(jìn)制整數(shù)部分轉(zhuǎn)換為基數(shù)為R的數(shù)制的轉(zhuǎn)換方法為:“除R取余”;十進(jìn)制小數(shù)部分轉(zhuǎn)換為基數(shù)為R的數(shù)制轉(zhuǎn)換方法為:“乘R取整”。

當(dāng)對(duì)十進(jìn)制小數(shù)部分連續(xù)地乘以R時(shí),若小數(shù)部分最后乘至為零,則轉(zhuǎn)換結(jié)束;小數(shù)部分也可能永遠(yuǎn)不能乘至為零,則達(dá)到所要求的精度即可。

【例4】將(215.3125)D轉(zhuǎn)換為二進(jìn)制數(shù)。

得到:(215)D=(11010111)D。

得到:(0.3125)D=(0.0101)B

將整數(shù)部分和小數(shù)部分合并在一起,得到:(215.3125)D=(11010111.0101)B。

【例5】將十進(jìn)制數(shù)(125.275)D轉(zhuǎn)換成十六進(jìn)制數(shù)。

方法:整數(shù)部分除16取余法,小數(shù)部分乘16取整法。

所以,(125.275)D=(7D.46)H。

(3)二進(jìn)制、八進(jìn)制、十六進(jìn)制的相互轉(zhuǎn)換

二進(jìn)制、八進(jìn)制、十六進(jìn)制之間的相互轉(zhuǎn)換在實(shí)際應(yīng)用中是需要加以掌握的。例如,計(jì)算機(jī)中的許多設(shè)備參數(shù)設(shè)置值往往是用十六進(jìn)制表示的,用戶便需要對(duì)其加以轉(zhuǎn)換才容易理解。

由于二、八、十六進(jìn)制三種數(shù)制的權(quán)值有以下的內(nèi)在聯(lián)系:23=8,24=16,也就是說3位二進(jìn)制相當(dāng)于1位的八進(jìn)制數(shù),4位二進(jìn)制數(shù)相當(dāng)于1位16進(jìn)制數(shù),因而它們之間的轉(zhuǎn)換便較容易實(shí)現(xiàn)。首先我們需要掌握表1-4中所列的各類進(jìn)制數(shù)中基數(shù)值的相互對(duì)應(yīng)關(guān)系。

二進(jìn)制、八進(jìn)制的相互轉(zhuǎn)換:

①八進(jìn)制轉(zhuǎn)換為二進(jìn)制:每位八進(jìn)制數(shù)對(duì)應(yīng)于三位二進(jìn)制數(shù)。

②二進(jìn)制轉(zhuǎn)換為八進(jìn)制:對(duì)二進(jìn)制整數(shù)部分從低位向高位分組,每三位一組;小數(shù)部分從高位向低位分組,每三位一組,不足補(bǔ)零。然后寫出每組對(duì)應(yīng)的八進(jìn)制基數(shù)即可。

【例6】八進(jìn)制數(shù)化為二進(jìn)制數(shù):(7123.63)O=(?)B

【例7】二進(jìn)制數(shù)化為八進(jìn)制數(shù):(1101101110)B=(?)O

二進(jìn)制轉(zhuǎn)換為八進(jìn)制的過程是相似的,也就是上例的逆向過程。

八進(jìn)制、十六進(jìn)制的相互轉(zhuǎn)換:

①十六進(jìn)制轉(zhuǎn)換為二進(jìn)制:每位十六進(jìn)制數(shù)對(duì)應(yīng)于四位二進(jìn)制數(shù);

②二進(jìn)制轉(zhuǎn)換為十六進(jìn)制:對(duì)二進(jìn)制整數(shù)部分從低位向高位分組,每四位一組;小數(shù)部分從高位向低位分組,每四位一組,不足補(bǔ)零。然后寫出每組對(duì)應(yīng)的十六進(jìn)制基數(shù)即可。

【例8】十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù):(2C1D)H=(?)B

【例9】二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù):(1101101110)B=(?)H

主站蜘蛛池模板: 辽阳市| 郁南县| 岢岚县| 子洲县| 玉田县| 扶风县| 枝江市| 吉安县| 东城区| 图片| 卫辉市| 易门县| 庆城县| 通化县| 南雄市| 临漳县| 卢氏县| 临清市| 日土县| 冕宁县| 大化| 会理县| 中西区| 怀化市| 通化县| 蓬莱市| 武鸣县| 南乐县| 深州市| 工布江达县| 通辽市| 泸溪县| 元阳县| 高雄市| 兰西县| 建湖县| 肥东县| 广汉市| 赞皇县| 乌拉特后旗| 勐海县|