引言
數(shù)字系統(tǒng)(數(shù) 碼系統(tǒng))定義了如何用獨(dú)特的符號來表示一個數(shù)字般堆。在不同的系統(tǒng)中有不同的表示方法。例如:(2A)16 和(52)8都是指同樣的數(shù)量(42)10贡避。
我們可以用符號來表示數(shù)字沼琉,但是我們的符號是有限的狸相。需要重復(fù)并組合它們來創(chuàng)建單詞。下面我們看看位置化數(shù)字系統(tǒng)月匣,如何通過數(shù)字钻洒,位置來表示數(shù)字奋姿。
位置化數(shù)字系統(tǒng)
位置化數(shù)字系統(tǒng)中,在數(shù)字中符號所占據(jù)的位置決定了其表示的值素标。在該系統(tǒng)中称诗,數(shù)字這樣表示:
± ( Sk-1
S2 S1 S0 . S-1 S-2 S-l ) b
它的值是:
n = ± Sk-1 × bk-1 +
+ S-1 × b-1 + S-2 × b-2 + S-l × b-l
- S 是一套字符集。
- b 是底(或基數(shù))头遭,它等于S符號集中的符號總數(shù)寓免,其中Si指該符號的位置是i。
- b 的冪可以從一個方向由0到K-1计维,還可以從另一個方向由-1到-L袜香。
十進(jìn)制系統(tǒng)
在該系統(tǒng)中:
- 底b = 10。
- 用10個符號來表示一個數(shù), 符號集S = {0,1,2,3,4,5,6,7,8,9}鲫惶。
在十進(jìn)制系統(tǒng)中困鸥,數(shù)字寫為:
±(Sk-1
S2 S1 S0 . S-1 S-2
S-l)10
整數(shù)(不帶小數(shù))
N = ± Sk-1 × 10k-1 + Sk-2 × 10k-2 +
+ S2 × 102 + S1 × 101 + S0 × 100
- Si 是一個數(shù)碼。
- b = 10 是底剑按。
- k 是數(shù)碼的數(shù)量疾就。
使用位置量
-
用10的冪表示十進(jìn)制數(shù)字,下圖顯示了在十進(jìn)制系統(tǒng)中使用位置量表示整數(shù)艺蝴。
image.png
例1 :在十進(jìn)制系統(tǒng)中使用位置量表示正整數(shù)+224
由上圖可知猬腰,+224是三位數(shù)需要三個位置量,
個數(shù)位(k=1) 4 = 4 × 100=1-1
十位數(shù)(k=2) 20 = 2 × 101=2-1
百位數(shù)200 = 2 × 102=3-1
例2 :在十進(jìn)制系統(tǒng)中使用位置量表示負(fù)整數(shù)-7508
由上圖可知猜敢,-7508是四位數(shù)需要四個位置量
個位數(shù)(k=1) 8 = 8 × 100=1-1
十位數(shù)(k=2) 0 = 0 × 101=2-1
百位數(shù)(k=3) 4 = 4 × 102=3-1
千位數(shù)(k=4) 7 = 7 × 103=4-1
二進(jìn)制姑荷、八進(jìn)制、十六進(jìn)制都是上面的邏輯缩擂,不同點(diǎn)在于:
- 底換成了2鼠冕、8、16胯盯。
-
符號變成了二進(jìn)制:{0,1} 懈费;八進(jìn)制:{0,1,2,3,4,5,6,7};十六進(jìn)制:{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
image.png
四種位置化系統(tǒng)中的數(shù)字比較
進(jìn)制轉(zhuǎn)換
其他進(jìn)制到十進(jìn)制的轉(zhuǎn)換
-
將數(shù)碼乘以其在源系統(tǒng)中的位置量并求和便得到十進(jìn)制中的數(shù)博脑。思路如下圖:
image.png
例1 將二進(jìn)制數(shù) (110.11)2 轉(zhuǎn)換為十進(jìn)制數(shù)6.75
例2 將十六進(jìn)制數(shù)(1A.23)16 轉(zhuǎn)換成十進(jìn)制數(shù)26.137
- 注意這個十進(jìn)制數(shù)表示并不精確憎乙,因為3 × 16-2=0.01171875。四舍五入成3位小數(shù)(0.012)也就是說3 × 16-2≈0.012叉趣。數(shù)字轉(zhuǎn)換時我們需要指明允許保留幾位小數(shù)泞边。
例3 將八進(jìn)制數(shù)(23.17)8 轉(zhuǎn)換為十進(jìn)制數(shù)。
- 在十進(jìn)制中(23.17)8 ≈ 19.234疗杉。再一次把7 × 8-2 = 0.109375四舍五入阵谚。
十進(jìn)制到其他進(jìn)制的轉(zhuǎn)換
- 十進(jìn)制轉(zhuǎn)換其他進(jìn)制需要分成整數(shù)部分和小數(shù)部分。
整數(shù)部分 可使用連除
- 我們稱十進(jìn)制數(shù)的整數(shù)部分為源,已轉(zhuǎn)換號的整數(shù)部分的數(shù)為目標(biāo)梢什。我們先創(chuàng)建一個空目標(biāo)闻牡。接著反復(fù)除源并得到商和余數(shù)。余數(shù)插入目標(biāo)的左邊绳矩,商變?yōu)樾碌脑凑秩蟆H缦聢D
image.png
小數(shù)部分 可使用連乘
- 我們稱十進(jìn)制數(shù)的小數(shù)部分為源,已轉(zhuǎn)換好的整數(shù)部分的數(shù)為目標(biāo)翼馆。我們先創(chuàng)建一個空目標(biāo)割以,接著反復(fù)乘源并得到結(jié)果。結(jié)果的整數(shù)部分插入目標(biāo)的右邊应媚,而小數(shù)部分成為新的源如下圖
轉(zhuǎn)換十進(jìn)制的小數(shù)部分 -
每次重復(fù)中如何得到目標(biāo)严沥,過程如下圖
轉(zhuǎn)換十進(jìn)制的小數(shù)部分到其他進(jìn)制
數(shù)碼的數(shù)量
把數(shù)字從十進(jìn)制轉(zhuǎn)換到其他進(jìn)制之前,我們需要通過k = [logbN]知道數(shù)碼的數(shù)量中姜。[x] 意味著最小的整數(shù)大于或等于x消玄。也稱為x的高限,N是該整數(shù)的十進(jìn)制值丢胚。如下所示:
二級制--十六進(jìn)制轉(zhuǎn)換
-
二進(jìn)制中的4位恰好是十六進(jìn)制中的1位翩瓜,如下圖
image.png
二進(jìn)制--八進(jìn)制轉(zhuǎn)換
-
二進(jìn)制中的3位恰好是八進(jìn)制中的1位
image.png
八進(jìn)制 -- 十六進(jìn)制的轉(zhuǎn)換
-
使用二進(jìn)制系統(tǒng)為中介系統(tǒng)。
image.png
步驟如下
- 從八進(jìn)制到十六進(jìn)制携龟,先將八進(jìn)制轉(zhuǎn)到二進(jìn)制兔跌。將位數(shù)重排成4位一組,找到十六進(jìn)制的對等值峡蟋。
- 從十六進(jìn)制轉(zhuǎn)到八進(jìn)制坟桅,我們先將十六進(jìn)制轉(zhuǎn)到二進(jìn)制。將位數(shù)重排成3位一組蕊蝗,找到八進(jìn)制的對等值仅乓。
非位置化數(shù)字系統(tǒng)
非位置化數(shù)字系統(tǒng)仍然使用有限的數(shù)字符號,每個符號有一個值蓬戚。但是符號所占用的位置通常與其值無關(guān)——每個符號都是固定的夸楣。
羅馬數(shù)字是非位置化系統(tǒng)的好例子。
全文摘自《計算機(jī)科學(xué)導(dǎo)論》