計(jì)算機(jī)系統(tǒng)的硬件之三不同進(jìn)位制之間的轉(zhuǎn)換

字號(hào):

一、 “十進(jìn)制”與“二進(jìn)制”的轉(zhuǎn)換:除以2取余法
    X ( 10) = b n × 2 n + b n-1 × 2 n-1 +……+ b 1 × 2 1 + b 0 × 2 0
    要將這個(gè)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的關(guān)鍵是求出二進(jìn)制數(shù)的每一位 b i 。分析這個(gè)式子,發(fā)現(xiàn)
    X ( 10) =(b n × 2 n-1 + b n-1 × 2 n-2 +…+ b 1 × 2 0 )×2 + b 0
    將等式兩端同除以 2 得
    X ( 10) / 2 = b n × 2 n-1 + b n-1 × 2 n-2 +……+ b 1 × 2 0 余數(shù)為 b 0
    二、 “十進(jìn)制”與“二進(jìn)制”的轉(zhuǎn)換(整數(shù)部分)除以2取余法
    三、 “十進(jìn)制”與“二進(jìn)制”的轉(zhuǎn)換(小數(shù)部分)乘以2取整余法
    有些小數(shù)轉(zhuǎn)換時(shí)為無限循環(huán)小數(shù),不出現(xiàn)小數(shù)部分為 0。這時(shí)根據(jù)轉(zhuǎn)換的精確度決定終止的位數(shù)。如,0.7轉(zhuǎn)換時(shí)有0.7 ( 10) =0.101100110011… ( 2) ,它以 0110循環(huán)。這時(shí),若精確度取4位,則結(jié)果為0.1011;若精確度取6位,則結(jié)果為0.101101,第7位的1向高位進(jìn)1,即0舍1入。
    四、 二進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換
    將一個(gè)二進(jìn)制數(shù)表示為以 2為數(shù)基的方冪的多項(xiàng)式,根據(jù)這個(gè)多項(xiàng)式采用十進(jìn)制方式進(jìn)行進(jìn)算,其結(jié)果即為該二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的結(jié)果。 1001101.1011
    =1×2 6 + 0×2 5 + 0×2 4 +1×2 3 + 1×2 2 + 0×2 1 + 1×2 0 +1×2 -1 +0×2 -2 + 1×2 -3 +1×2 -4
    =77.6875 ( 10)
    五、 二進(jìn)制與八進(jìn)制和十六進(jìn)制的轉(zhuǎn)換
    由于二進(jìn)制數(shù)表示的數(shù)位比較長,不便于書寫和閱讀;因此考慮用既有較少的數(shù)位,又不失二進(jìn)制的特點(diǎn)的進(jìn)位制來表示。八進(jìn)制和十六進(jìn)制是常用于這一目的的進(jìn)位制。
    轉(zhuǎn)換的方法是:先以小數(shù)點(diǎn)為基準(zhǔn)分別向左向右每三為一組,將數(shù)分成若干組。再把每一組看成一個(gè)獨(dú)立的(整)八進(jìn)制數(shù)或十六進(jìn)制數(shù)。
    六、 二進(jìn)制與八進(jìn)制和十六進(jìn)制的轉(zhuǎn)換
    八進(jìn)制數(shù)碼與二進(jìn)制分組的關(guān)系列表如下:
    1001101.1011=(001)(001)(101).(101)(100)=115.54 (8)
    七、 二進(jìn)制與八進(jìn)制和十六進(jìn)制的轉(zhuǎn)換
    十六進(jìn)制數(shù)碼與二進(jìn)制分組的關(guān)系列表如下:
    10011010010 ( 2) = (0100)(1101)(0010) ( 2) = 4D2 ( 16)
    八、 二進(jìn)制、八進(jìn)制、十六進(jìn)制的轉(zhuǎn)換
    八進(jìn)制和十六進(jìn)制表示的實(shí)質(zhì)還是二進(jìn)制。使用八進(jìn)制和十六進(jìn)制可縮短二進(jìn)制表示的數(shù)位長度,也可簡化十進(jìn)制到二進(jìn)制的轉(zhuǎn)換。即先將十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制或十六進(jìn)制數(shù),在將其轉(zhuǎn)換為二進(jìn)制數(shù)