- 數字電子技術項目化教程
- 李華
- 2844字
- 2020-10-15 17:26:26
任務1.1 數制與碼制
人們在生產和生活中,創造了各種不同的計數方法。采用何種方法計數,是根據人們的需要和方便而定的。由數字符號構成且表示物理量大小的數字和數字組合,稱為數碼。多位數碼中每一位的構成方法,以及從低位到高位的進制規則,稱為數制(或計數制),又稱進制。在數字電路中,往往用“0”和“1”組成的二進制數碼表示數值的大小或者一些特定的信息,這種具有特定意義的二進制數碼稱為二進制代碼,代碼的編制過程稱為編碼。
1.1.1 數制
1.幾種常用的數制
我們在日常生活中,習慣于用十進制,但在數字電路及其系統中,常用的是二進制。除此之外,還有八進制、十六進制等數制。
通常,十進制數用(N)10或(N)D表示,二進制用(N)2或(N)B表示,八進制用(N)8或(N)O表示,十六進制用(N)16或(N)H表示。
(1)十進制(Decimal)
十進制是我們最熟悉的一種數制,它的基數為10,用0、1、2、3、4、5、6、7、8、9共10個數碼(或系數),按“逢十進一”的規律計數,例如,9+1=10。
任何一個十進制數都可以寫成以10為底的冪的求和式,即其位權展開式為

式中,i為位數,從整數最低位(個位)依次往高位,i分別取0、1、…、n-1共n位整數位,從小數最高位(十分位)依次往低位,i分別取-1、-2、…、-m共m位小數;ai為第i位的數碼;10i為第i位的權值。
例如,(143.75)10=1×102+4×101+3×100+7×10-1+5×10-2
式中的注腳10表示十進制,或者說以10為“基數”;各位數的權為10的冪;1、4、3、7、5稱為系數。
(2)二進制(Binary)
數字系統中廣泛采用二進制數,這是因為數字電路通常只有兩種基本狀態,比如電位的高和低、脈沖的有和無、晶體管的導通和截止。二進制中只有0、1兩個數字符號,基數為2,計數規律是“逢二進一,借一當二”,例如,1+1=10。
任何一個二進制數都可以表示成以2為底的冪的求和式,即其位權展開式為

例如,(10010)2=1×24+0×23+0×22+1×21+0×20=(18)10
從上例可以看出,5位二進制數(10010)2可以表示為十進制數(18)10。由于數值越大,二進制的位數就越多,讀寫不方便,且容易出錯。所以,數字系統中還用到八進制和十六進制。
(3)八進制(Octal)
八進制的數碼為0、1、2、3、4、5、6、7共8個數碼,基數為8。它的計數規則是“逢八進一,借一當八”,例如,7+1=10。
其位權展開式為

例如,(116)8=1×82+1×81+6×80=(78)10
(4)十六進制(Hexadecimal)
十六進制是以16為基數的計數體制,它有0~9、A、B、C、D、E、F共16個數碼,其計數規則是“逢十六進一,借一當十六”,例如,F+1=10。
其位權展開式為

例如,(3F)16=3×161+15×160=(63)10
2.數制轉換
二進制、八進制、十六進制轉換成十進制時,只要將它們按位權展開式展開,將各項相加,便可得到相應進制數對應的十進制數,這里不再贅述。
(1)十進制數轉換成非十進制數
把十進制數轉換成為非十進制數可用“除基數取余法”。它是將十進制數逐次除以轉換數的基數,并依次記下余數,直到商為0。最先得到的余數為轉換數的最低位,最后得到的余數為轉換數的最高位。
例如,將十進制數157轉換為二進制數的步驟如下:

可得(157)10=(10011101)2
(2)二進制數與八進制數之間的轉換
1)二進制數轉換成八進制數。從低位到高位“三位并一位”,不足三位用0補足,分組后將每三位二進制數組用對應的八進數來代替,再按順序排列寫出對應的八進制數。
例如,(10110001)2=(010,110,001)2=(261)8
2)八進制數轉換成二進制數??梢愿爬椤耙晃徊鹑弧?,并去掉整數部分最高位的0即可。
例如,(315)8=(011,001,101)2=(11001101)2
(3)二進制數與十六進制數之間的轉換
1)二進制數轉換成十六進制數。從低位到高位“四位并一位”,不足四位用0補足,分組后將每四位二進制數組用對應的十六進數來代替,再按順序排列寫出對應的十六進制數。
例如,(10111100010)2=(0101,1110,0010)2=(5E2)16
2)十六進制數轉換成二進制數??梢愿爬椤耙晃徊鹚奈弧?,并去掉整數部分最高位的0即可。
例如,(8D3C)16=(1000,1101,0011,1100)2=(1000110100111100)2
幾種進制數的對照表見表1-1。
表1-1 幾種進制數的對照表

1.1.2 碼制
碼制即編碼的方式。在數字系統中,用0和1組成的二進制數碼不僅可以表示數值的大小,而且還常用來表示數字、文字或符號等特定信息,這種具有特定意義的二進制數碼稱為二進制代碼。二進制代碼的編制過程稱為“編碼”。編碼的形式有很多,本節只介紹常用的二-十進制編碼(又稱為BCD碼)和格雷碼。
1.常用的BCD碼
BCD碼是用一個4位二進制代碼表示1位十進制數字的編碼方法。4位二進制有16種不同的狀態組合,從中取出10種組合來表示0~9十個數字,可以有多種組合方式,因此BCD碼有許多種,見表1-2。
表1-2 幾種常用的BCD碼

(1)有權BCD碼
1)8421BCD碼。從表1-2可以看出,8421BCD碼是選取0000~1001這10種狀態來表示十進制數0~9的,1010~1111為不用狀態。8421BCD碼實際上就是用按自然順序的二進制數來表示對應的十進制數的。因此,這種編碼最自然和簡單,很容易識別和記憶,與十進制數之間的轉換也比較方便。
8421BCD碼和一個4位二進制數一樣,從高到低的位權值分別是8、4、2、1,故稱為8421BCD碼。在這種編碼中,1010~1111這6種狀態是不用的,稱為禁用碼。用8421BCD碼可以十分方便地表示任意一個十進制數。例如,十進制數1314用8421BCD碼表示為
(1314)10=(0001 0011 0001 0100)8421BCD
2)5421BCD碼。從表1-2可以看出,5421BCD碼是選取0000~0100和1000~1100這10種狀態來表示十進制數0~9的,0101~0111和1101~1111這6種狀態為不用狀態。5421BCD碼從高到低的位權值分別是5、4、2、1。
可以看出,8421BCD碼和5421BCD碼都是用位權值來命名的,所有又稱為有權碼。
(2)無權BCD碼(余3碼)
余3碼選取的是0011~1100這10種狀態,與8421BCD碼相比,對應相同十進制數均要多3,故稱為余3碼。要將一位十進制數轉換成余3碼,只要先將十進制數轉換成8421BCD碼,然后再加上(0011)2即可。可以看出,余3碼不是用位權值來命名的,所有又稱為無權BCD碼。
2.其他常用的編碼
(1)格雷碼
格雷碼又稱為循環碼。它有一個顯著特點,即任意兩個相鄰的數所對應的代碼之間只有一位不同,其余位都相同。這一特點使它在代碼的形成和傳輸時引起的誤差比較小。4位循環碼的編碼表見表1-3。
表1-3 4位循環碼的編碼表

格雷碼和余3碼均屬于無權BCD碼,無權BCD碼沒有確定的權值,但它們各有特點,在不同的場合可以根據需要選用。
(2)奇偶校驗碼
信息的正確性對數字系統和計算機系統有著重要的意義,但在信息的存儲和傳送過程中,常由于某種隨機干擾而發生錯誤。所以希望在傳送代碼時能進行某種校驗以判斷是否發生了錯誤,甚至能自動糾正錯誤。
奇偶校驗碼就是一種具有自動檢錯的代碼。這種代碼由兩部分組成:一部分是信息位,可以是任意一種二進制代碼(如8421BCD碼);另一部分是校驗位,它僅有一位。常見的奇偶校驗碼見表1-4。
表1-4 常見的奇偶校驗碼

從表1-4可以看出校驗位數碼的編碼方式:作為“奇校驗”時,使校驗位和信息位所組成的每組代碼中含有奇數個“1”;作為“偶校驗”時,使校驗位和信息位所組成的每組代碼中含有偶數個“1”。
奇偶校驗碼常用于代碼的傳送中對代碼接收端的奇偶性進行檢查:與發送端的奇偶性一致,則可認為接收的代碼正確;否則,接收的代碼錯誤。