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

1.4 基礎知識:進位制及其相互轉換

1.4.1 二進制、十進制與r進制

進位計數制是一種用數碼和數位(權)表示數值型信息的方法。一個數由一定數目的數碼排列在一起組成,每個數碼的位置規定了該數碼所具有的數值等級——“權”,該位置也稱為“數位”,可區分數碼的個數稱為“基值”。該計數制又稱為以基值為進位的計數制,數位的“權”值是基值的冪,計數中,某一數位累計到基值后,向高數位進一;高數位的一,相當于低數位的基值大小。日常生活中,常見進位計數制有十進制(自然數)、十二進制(月)、二十四進制(晝夜)、六十進制(小時/分鐘/秒)等。在計算機中,還有二進制、八進制和十六進制等。一般地,以后綴B表示二進制數,后綴O表示八進制數,后綴H表示十六進制數,后綴D表示十進制數,或者以(數碼串)r表示一個r進制數,如圖1.5所示。

0

圖1.5 r進制與十進制、二進制的概念比較示意

基值為rr進制數值N的表示方法為:

N=(dn-1dn-2d2d1d0.d-1d-2d-m)r。

該數表示的十進制大小為:

0

式中:m、n為正整數,n為整數的位數,m為小數的位數,dir個數碼0,1,…,r-1中的任意一個,r為基值,ri為數位的權值,小數點位于d0r0的后面。

1. 十進制

r=10時,表示十進制數。在十進制數中,10個數碼為0,1,…,9。逢十進一,其數位權值為10i。

示例14 (245.25)=2×102+4×101+5×100+2×10-1+5×10-2

2. 二進制

r=2時,表示二進制數。在二進制數中,2個數碼為0或1。逢二進一,其數位權值為2i。

示例15 (11110101.01)=1×27+1×26+1×25+1×24+0×23+1×22+0×21+1×20+0×2-1+1×2-2=(245.25)。

3. 八進制和十六進制

r=8時,表示八進制數。在八進制數中,8個數碼為0,1,…,7。逢八進一,其數位權值為8i。當r=16時,表示十六進制數。在十六進制數中,分別用A表示(10),用B表示(11),用C表示(12),用D表示(13),用E表示(14),用F表示(15)。所以,16個數碼為0,1,2,…,8,9,A,B,C,D,E,F。逢十六進一,其數位權值為16i。

示例16 (365.2)=3×82+6×81+5×80+2×8-1=(245.25);

(F5.4)十六=F×161+5×160+4×16-1=(245.25)

1.4.2 進位制之間的相互轉換

1. 其他進制轉換到十進制

表1.1給出了4種進位制之間轉換的對應關系。

表1.1 十進制數、二進制數、八進制數和十六進制數對照表

0

一個用任意進制表示的數,都可用上述式1轉換成十進制數。為便于計算,可采用如下方法:整數部分和小數部分分別按下述方法轉換。

整數部分采用基值重復相乘法:按括號及優先級次序,計算從最高位開始,乘基值加次高位,結果再乘基值加次次高位,一直加到個位d0為止。

0

示例17 11110101 B=_____D。

解:

0

小數部分采用基值重復相除法:按括號及優先級次序,計算從最低位開始,除基值加高位,結果再除基值,一直加到小數點為止,最后再除基值。

0

示例18 0.F62B H=_____D。

解:N=0.F62B H=(((B÷16+2)÷16+6)÷16 +F)÷16=0.96159 D。

2. 十進制轉換到其他進制

整數部分和小數部分分別轉換:整數部分采用基值重復相除法,即除基值取余數方法,一直除到商等于0時為止,將所得的余數從下到上排列起來即為所要求的進位制數(參見示例19)。小數部分采用基值重復相乘法,即乘基值取整數方法(參見示例20)。十進制小數轉換成二進制小數時,有時永遠無法使乘積變成0,在滿足一定精度的情況下,可以取若干位數作為其近似值。

示例19 215 D=_____B。

解:如圖1.6(a)所示,不斷除以基值2,直到商等于0時為止。將所得余數從下到上排列起來為11010111,便是該十進制數轉換成二進制整數的結果,即215 D=11010111 B。

示例20 0.6875 D=_____B。

解:如圖1.6(b)所示,小數部分不斷乘以基值2,將得到的各位整數從上到下排列起來為0.1011,便是該十進制小數轉換成二進制小數的結果,即0.6875 D=0.1011 B。

0

圖1.6 十進制轉換成二進制的轉換過程示意圖

3. 二進制、八進制、十六進制轉換

由于二進制權值2i、八進制權值8i=23i、十六進制權值16i=24i具有整指數倍數關系,即1位八進制數相當于3位二進制數,1位十六進制數相當于4位二進制數,故可按如下方法轉換。

(1)二進制整數轉換成八進制/十六進制整數的方法是:先將二進制整數從右向左每隔3位/4位分一組,再將每組按二進制數向十進制數轉換的方法進行轉換。

(2)二進制小數轉換成八進制/十六進制小數的方法是:先將二進制小數從左向右每隔3位/4位分一組,最后一組若不足3位/4位,在該組后面補相應數量的0,湊成3位/4位,再將每組按二進制數向十進制數轉換的方法進行轉換。

示例21 10110101 B=265 O=B5 H。

解:第1步,將10110101按3位分組為10 110 101,按4位分組為1011 0101。

第2步,分別將每組轉換成八進制數、十六進制數。

0

示例22 0.1011 B=0.54 O=0.B0 H。

解:第1步,將0.1011按3位分組為0.101 100,按4位分組為0.1011 0000。

第2步,分別將每組轉換成八進制數。

0

分別將每一位八進制數轉換成3位二進制數,每一位十六進制數轉換成4位二進制數便可實現八進制數、十六進制數到二進制數之間的轉換。

主站蜘蛛池模板: 东平县| 潮州市| 湄潭县| 遂溪县| 江达县| 瑞安市| 齐河县| 平顶山市| 区。| 广灵县| 建始县| 洛南县| 榕江县| 屯昌县| 巴塘县| 福贡县| 凭祥市| 荥经县| 东阿县| 和林格尔县| 麻江县| 抚州市| 五指山市| 临朐县| 长治县| 汝阳县| 宁都县| 德格县| 乾安县| 襄汾县| 广宁县| 天水市| 黑龙江省| 蓬溪县| 张家口市| 子洲县| 巨鹿县| 靖边县| 耿马| 应城市| 岑巩县|