十進制和二進制之間的轉(zhuǎn)換
由十進制數(shù)的一般表示式:
可以得到整數(shù)的一般表達式:
將等式兩邊分別除以2,可得第一個余數(shù)b0,同時上式演變?yōu)椋?/P>
將等式兩邊再除以2,可得第二個余數(shù)b1,等式變?yōu)椋?/P>
重復(fù)上述過程直到商為0,就可由所有的余數(shù)求出二進制數(shù)。
例題 1.3.3 將(25)D轉(zhuǎn)換為二進制數(shù)。
解:該題的解題思想是,不斷地用2分解十進制整數(shù),并將余數(shù)按得到的順序由低位到高位排列,即可得到對應(yīng)的二進制數(shù)。
所以(18)D=(b4 b3 b2 b1 b0)B=(10010)B
例題1.3.4 將(155)D轉(zhuǎn)換為二進制數(shù)解:當要將一個很大的十進制數(shù)轉(zhuǎn)換成二進制數(shù)時,采用例題1.3.3的做法很費時 ,我們可以采用另外一種方法。這種方法的思想是從需要轉(zhuǎn)換的十進制數(shù)找到與之最接近的2的冪次方,并從這個十進制數(shù)中減去該2的冪次方,在剩下的余數(shù)中重復(fù)這種做法,直到余數(shù)為0。然后將所得到的這些2的冪次方與二進制數(shù)中的位權(quán)相比,相同的位標記為1,其余的為0,這樣就可得到與十進制數(shù)對應(yīng)的二進制數(shù)。
現(xiàn)在我們來看看155這個十進制數(shù),與2的各個冪次方數(shù)比較后可知,與155最近的是128,即27,155減去128后余數(shù)為27,而27最接近的是24,27減去16得到11,11減去8(23)得到3,3減去2(21)得到1,1減去1(20)得到0。由于在本次計算中得到2的最高冪次為7,因此可以得知對應(yīng)的二進制數(shù)是一個八位的二進制數(shù),寫出這個二進制數(shù)的位權(quán),并將其與得到的五個2的冪次方數(shù)對比后填入1,其余的用
0代替,最后得到的二進制數(shù)為10011011。
需要指出的是,多數(shù)計算機或數(shù)字系統(tǒng)中只處理4、8、16、32位的二進制數(shù)據(jù),因此,數(shù)據(jù)的位數(shù)需配成規(guī)格化的位數(shù),如例題1.3.3種轉(zhuǎn)換結(jié)果為11001,如將它配成8位,則相應(yīng)的高冪項應(yīng)填以0,其值不變,即11001=00011001。
根據(jù)十進制數(shù)的一般表達式,可以得到十進制小數(shù)的表達式如下
:
將等式兩邊分別乘以2,可得:
比較上面兩式,可以發(fā)現(xiàn)第一項中2的冪次已經(jīng)由原來的-1變成了0,而20是整數(shù)的最低位的位權(quán),因此可以將該項從表達式中去掉,也就是去掉了b-1。,這樣也就使得剩下的數(shù)保持為純小數(shù)。繼續(xù)在表達式的兩端乘以2,可得:
這樣又得到了一個20項,也就是b-2也將再次被從式子中剔除,但同時也就產(chǎn)生了二進制小數(shù)的前兩位。重復(fù)上述過程,直到 滿足要求的位數(shù)時做“四舍五入”,也就完成了從十進制小數(shù)到二進制小數(shù)的轉(zhuǎn)換。
例題8:將(0.706)D轉(zhuǎn)換成誤差ε不大于2-10二進制小數(shù)。
解:
0.706 ×2=1.412……1……b-1
0.412 ×2=0.824……0……b-2
0.824 ×2=1.648……1……b-3
0.648 ×2=1.296……1……b-4
0.296 ×2=0.592……0……b-5
0.592 ×2=1.184……1……b-6
0.184 ×2=0.368……0……b-7
0.368 ×2=0.736……0……b-8
0.736 ×2=1.472……1……b-9
最后一位小數(shù)0.472小于0.5,根據(jù)“四舍五入”原則,則有:
0.0 ×2=0……0……b-10
所以, (0.706)D=(0.101101001)B,誤差ε 2-10
評論