對(duì)整數(shù)部分,要用除2取余數(shù)辦法完成十→二的進(jìn)制轉(zhuǎn)換,其規(guī)則是:
用2除十進(jìn)制數(shù)的整數(shù)部分,取其余數(shù)為轉(zhuǎn)換后的二進(jìn)制數(shù)整數(shù)部分的低位數(shù)字;
再用2去除所得的商,取其余數(shù)為轉(zhuǎn)換后的二進(jìn)制數(shù)高一位的數(shù)字;
重復(fù)執(zhí)行第二步的操作,直到商為0,結(jié)束轉(zhuǎn)換過程。
例如, 將10進(jìn)制的37轉(zhuǎn)換成二進(jìn)制整數(shù)的過程如下:
對(duì)小數(shù)部分,要用乘2取整數(shù)辦法完成十→二的進(jìn)制轉(zhuǎn)換,其規(guī)則是:
用2乘十進(jìn)制數(shù)的小數(shù)部分,取乘積的整數(shù)為轉(zhuǎn)換后的二進(jìn)制數(shù)的最高位數(shù)字;
再用2乘上一步乘積的小數(shù)部分,取新乘積的整數(shù)為轉(zhuǎn)換后二進(jìn)制小數(shù)低一位數(shù)字;
重復(fù)第二步操作,直至乘積部分為0,或已得到的小數(shù)位數(shù)滿足要求,結(jié)束轉(zhuǎn)換過程。
例如,將十進(jìn)制的0.43,轉(zhuǎn)換成二進(jìn)制小數(shù)的過程如下(假設(shè)要求小數(shù)點(diǎn)后取5位):
結(jié)果:(0.385)10 =(0.305)8
完成 十→十六 進(jìn)制數(shù)的轉(zhuǎn)換方法與前述方法類似,只是乘除16時(shí),手工運(yùn)算不大方便。
(2) 二 八 及 二 十六的進(jìn)制轉(zhuǎn)換
用二進(jìn)制表示一個(gè)數(shù)值N,所用的位數(shù)K為log2N,如表示4096, K為13,寫起來位串較長。為此,計(jì)算機(jī)中也常常采用八進(jìn)制和十六進(jìn)制來表示數(shù)值數(shù)據(jù),為表示數(shù)值N,分別有如下對(duì)應(yīng)關(guān)系:
m-1
N = ∑ Di * 8i (2.5) Di 的取值為0到7
i = -k
例如 (7.44)8 = 7*80 + 4*8-1 + 4*8-2 = (7.5625)10 。
m-1
N = ∑ Di * 16i (2.6) Di 的取值為0到9和A到F
i = -k
例如 (1A.08) 16 = 1*161 + 10*160 + 8*16-2 = (26.03125)10 。
上述二式中所用符號(hào)的意義與公式(2.3)中所用符號(hào)的意義類同,但此處Di包含的基本符號(hào)分別限于0-7和0-9、A-F,各位的碼權(quán)分別為8i和16i
把用二進(jìn)制、八進(jìn)制、十六進(jìn)制表示的數(shù)轉(zhuǎn)換成10進(jìn)制數(shù)的值, 使人能更容易地衡量這個(gè)數(shù)值的大小。
二進(jìn)制數(shù)與八進(jìn)制、十六進(jìn)制數(shù)的關(guān)系
由于log28=3, log216=4, 即一位8進(jìn)制的數(shù)可以用3位二進(jìn)制的數(shù)重編碼來得到, 一位16進(jìn)制的數(shù)可以用4位二進(jìn)制的數(shù)重編碼得到, 故人們通常認(rèn)為, 在計(jì)算機(jī)這個(gè)領(lǐng)域內(nèi), 8進(jìn)制和16進(jìn)制數(shù), 只是二進(jìn)制數(shù)的一種特定的表示形式。表2.1給出少量二、八、十六和十進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系:
表2.1 二、八、十六和十進(jìn)制的對(duì)應(yīng)關(guān)系
二進(jìn)制數(shù) | 八進(jìn)制數(shù) | 十六進(jìn)制數(shù) | 十進(jìn)制數(shù)的值 |
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 | 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 | 0 1 2 3 4 5 6 7 8 9 A B C D E F | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
在把二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制表示時(shí),應(yīng)從小數(shù)點(diǎn)所在位置分別向左、向右對(duì)每三位或每四位二進(jìn)制位進(jìn)行分組,寫出每一組所對(duì)應(yīng)的一位八或十六進(jìn)制數(shù)。若小數(shù)點(diǎn)左側(cè)(即整數(shù)部分)的位數(shù)不是3或4的整數(shù)倍,可以按在數(shù)的最左側(cè)補(bǔ)零的方法理解;對(duì)小數(shù)點(diǎn)右側(cè)(即小數(shù)部分),應(yīng)按在數(shù)的最右側(cè)補(bǔ)零的方法處理,否則容易轉(zhuǎn)換錯(cuò)。對(duì)不存在小數(shù)部分的二進(jìn)制數(shù)(整數(shù)),應(yīng)從最低位開始向左把每3位劃分成一組,使其對(duì)應(yīng)一個(gè)八進(jìn)制位,或把每4位劃分成一組,使其對(duì)應(yīng)一個(gè)十六進(jìn)制位,例如:
(10.101) 2 變成八進(jìn)制時(shí),應(yīng)把它理解為(010.101)2,是(2.5)8 , 即八進(jìn)制的2.5。當(dāng)把它轉(zhuǎn)換為十六進(jìn)制時(shí),應(yīng)首先變?yōu)?0010.1010)2,是(2.A) 16,即十六進(jìn)制的2.A,而不是(2.5)16。又如,
(1100111.10101101) 2 = (147.532) 8
(1100111.10101101) 2 = (67.AD)16
八和十六進(jìn)制之間的轉(zhuǎn)換不怎么常用,經(jīng)過二進(jìn)制的中間結(jié)果進(jìn)行轉(zhuǎn)換是方便的。
聯(lián)系客服