Binary Coded Decimal,或BCD,是將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的另一個過程
正如我們在教程的二進(jìn)制數(shù)部分所看到的,使用了許多不同的二進(jìn)制代碼在數(shù)字和電子電路中,每個都有自己的特定用途。
由于我們自然生活在十進(jìn)制(基數(shù)為10)的世界中,我們需要一些方法將這些十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)(base-2)計算機(jī)和數(shù)字電子設(shè)備理解的環(huán)境,以及二進(jìn)制編碼的十進(jìn)制代碼允許我們這樣做。
我們之前已經(jīng)看到,n位二進(jìn)制代碼是一組“n”位,假定為 2 n 1和0的不同組合。二進(jìn)制編碼十進(jìn)制系統(tǒng)的優(yōu)點(diǎn)是每個十進(jìn)制數(shù)字由一組4個二進(jìn)制數(shù)字或位表示,其方式與十六進(jìn)制大致相同。因此,對于10位十進(jìn)制數(shù)字(0到9),我們需要一個4位二進(jìn)制代碼。
但不要混淆,二進(jìn)制編碼的十進(jìn)制不一樣十六進(jìn)制。而4位十六進(jìn)制數(shù)有效至 F 16 表示二進(jìn)制 1111 2 ,(十進(jìn)制15) ,二進(jìn)制編碼的十進(jìn)制數(shù)停在 9 二進(jìn)制 1001 2 。這意味著雖然可以使用四個二進(jìn)制數(shù)字表示16個數(shù)字( 2 4 ),但在BCD編號系統(tǒng)中,六個二進(jìn)制代碼組合: 1010 (十進(jìn)制10), 1011 (十進(jìn)制11), 1100 (十進(jìn)制12), 1101 (十進(jìn)制13), 1110 (十進(jìn)制14)和 1111 (十進(jìn)制15)被歸類為禁號,不能使用。
二進(jìn)制編碼小數(shù)的主要優(yōu)點(diǎn)是它允許在decimal(base-10)和binary(base-2)表單之間輕松轉(zhuǎn)換。但是,缺點(diǎn)是BCD代碼是浪費(fèi)的,因?yàn)椴皇褂?1010 (十進(jìn)制10)和 1111 (十進(jìn)制15)之間的狀態(tài)。然而,二進(jìn)制編碼的十進(jìn)制有許多重要的應(yīng)用,特別是使用數(shù)字顯示。
在BCD編號系統(tǒng)中,十進(jìn)制數(shù)被分成四位,用于數(shù)字中的每個十進(jìn)制數(shù)字。每個十進(jìn)制數(shù)字由其加權(quán)二進(jìn)制值表示,執(zhí)行數(shù)字的直接轉(zhuǎn)換。因此,一個4位組表示每個顯示的十進(jìn)制數(shù)字,從 0000 表示零到 1001 表示九。
因此,例如,十進(jìn)制的 357 10 (三百五十七)將以二進(jìn)制編碼的十進(jìn)制表示為:
357 10 = 0011 0101 0111 (BCD)
然后我們可以看到BCD使用加權(quán)編碼,因?yàn)槊總€4位組的二進(jìn)制位表示最終值的給定權(quán)重。換句話說,BCD是加權(quán)代碼,二進(jìn)制編碼十進(jìn)制代碼中使用的權(quán)重是 8 , 4 , 2 , 1 ,通常稱為8421代碼,因?yàn)樗纬上嚓P(guān)十進(jìn)制數(shù)字的4位二進(jìn)制表示。
十進(jìn)制數(shù)字的二進(jìn)制編碼十進(jìn)制表示
h3>
Binary Power | 2 3 | 2 2 | 2 1 | 2 0 |
二進(jìn)制重量: | 8 | 4 | 2 | 1 |
左邊每個十進(jìn)制數(shù)的十進(jìn)制重量增加10倍。在BCD數(shù)字系統(tǒng)中,每個數(shù)字的二進(jìn)制權(quán)重增加 2 如圖所示。然后第一個數(shù)字的權(quán)重為 1 ( 2 0 ),第二個數(shù)字的權(quán)重為 2 ( 2 1 ),第三個是 4 的重量( 2 2 ) ,第四個權(quán)重 8 ( 2 3 )。
然后是十進(jìn)制(denary)數(shù)字與加權(quán)二進(jìn)制編碼的十進(jìn)制數(shù)字如下所示。
二進(jìn)制編碼十進(jìn)制的真值表
然后我們可以看到8421 BCD代碼只不過是每個二進(jìn)制數(shù)字的權(quán)重,每個十進(jìn)制(denary)數(shù)字表示為其四位純二進(jìn)制數(shù)。
十進(jìn)制到BCD轉(zhuǎn)換
正如我們上面所看到的,十進(jìn)制到二進(jìn)制編碼十進(jìn)制的轉(zhuǎn)換非常類似于十六進(jìn)制到二進(jìn)制的轉(zhuǎn)換。首先,將十進(jìn)制數(shù)字分成加權(quán)數(shù)字,然后記下表示每個十進(jìn)制數(shù)字的等效4位8421 BCD代碼,如圖所示。
二進(jìn)制編碼十進(jìn)制示例No1
使用在上表中,將以下十進(jìn)制(denary)數(shù)字轉(zhuǎn)換為:85 10 ,572 10 和8579 10 到它們的8421 BCD等價物中。
85 10 = 1000 0101 (BCD)
572 10 = 0101 0111 0010 (BCD)
8579 10 = 1000 0101 0111 1001 (BCD)
請注意生成的二進(jìn)制數(shù)后轉(zhuǎn)換將是十進(jìn)制數(shù)字的真正二進(jìn)制轉(zhuǎn)換。這是因?yàn)槎M(jìn)制代碼轉(zhuǎn)換為真正的二進(jìn)制計數(shù)。
BCD到十進(jìn)制轉(zhuǎn)換
從二進(jìn)制編碼的十進(jìn)制到十進(jìn)制的轉(zhuǎn)換與上面的完全相反。只需將二進(jìn)制數(shù)分成四位數(shù)組,從最低有效位開始,然后寫入每個4位組所代表的十進(jìn)制數(shù)。如果需要生成完整的4位分組,最后添加額外的零。例如, 110101 2 將變?yōu)椋?0011 0101 2 或 35 10 十進(jìn)制。
二進(jìn)制編碼的十進(jìn)制示例No2
轉(zhuǎn)換以下二進(jìn)制數(shù):1001 2 ,1010 2 ,1000111 2 和10100111000.101 2 到它們的十進(jìn)制等值中。
1001 2 = 1001 BCD = 9 10
1010 2 = 這會產(chǎn)生錯誤,因?yàn)樗鞘M(jìn)制 10 10 且不是有效的BCD編號
1000111 2 = 0100 0111 BCD = 47 10
10100111000.101 2 = 0101 0011 0001.1010 BCD = 538.625 10
BCD到十進(jìn)制或十進(jìn)制到BCD的轉(zhuǎn)換是一個相對簡單的任務(wù),但我們需要記住BCD數(shù)是十進(jìn)制數(shù)而不是二進(jìn)制數(shù)數(shù)字,即使它們是用比特表示的。十進(jìn)制數(shù)的BCD表示很重要,因?yàn)榇蠖鄶?shù)人使用的基于微處理器的系統(tǒng)需要在十進(jìn)制系統(tǒng)中。
然而,雖然BCD易于編碼和解碼,但它不是存儲數(shù)字的有效方式。在十進(jìn)制數(shù)的標(biāo)準(zhǔn)8421 BCD編碼中,表示給定十進(jìn)制數(shù)所需的各個數(shù)據(jù)位的數(shù)量將始終大于等效二進(jìn)制編碼所需的位數(shù)。
例如,二進(jìn)制從0到999的三位十進(jìn)制數(shù)僅需要10位( 1111100111 2 ),而在二進(jìn)制編碼的十進(jìn)制中,相同的數(shù)字至少需要12 -bits( 0011 1110 0111 BCD )用于相同的表示。
此外,使用二進(jìn)制編碼的十進(jìn)制數(shù)執(zhí)行算術(shù)任務(wù)可能有點(diǎn)尷尬每個數(shù)字不能超過9.在BCD中添加兩個十進(jìn)制數(shù)字將產(chǎn)生一個可能的進(jìn)位位1,需要將其添加到下一組4位。
如果二進(jìn)制和添加的進(jìn)位位等于或小于9(1001),相應(yīng)的BCD數(shù)字是正確的。但是當(dāng)二進(jìn)制和大于9時,結(jié)果是無效的BCD數(shù)字。因此,最好將BCD數(shù)轉(zhuǎn)換為純二進(jìn)制數(shù),執(zhí)行所需的加法,然后在顯示結(jié)果之前將其轉(zhuǎn)換回BCD。
然而,在微電子和計算機(jī)中使用BCD編碼系統(tǒng)系統(tǒng)在二進(jìn)制編碼的十進(jìn)制數(shù)據(jù)打算顯示在一個或多個7段LED或LCD顯示器上的情況下特別有用,并且有許多流行的集成電路可用于提供BCD輸出或輸出。
一個常見的IC是74LS90異步計數(shù)器/分頻器,它包含獨(dú)立的2分頻和5分頻計數(shù)器,可以一起使用以產(chǎn)生具有BCD輸出的10分頻計數(shù)器。另一個是74LS390,它是基本74LS90的雙版本,也可以配置為產(chǎn)生BCD輸出。
但最常用的BCD編碼IC是74LS47和74LS48 BCD到7-段解碼器/驅(qū)動器,它轉(zhuǎn)換計數(shù)器的4位BCD碼等,并將其轉(zhuǎn)換為所需的顯示代碼,以驅(qū)動7段LED顯示器的各個段。雖然兩個IC功能相同,但74LS47具有用于驅(qū)動共陽極顯示器的低電平有效輸出,而74LS48具有用于驅(qū)動共陰極顯示器的高電平有效輸出。
二進(jìn)制編碼十進(jìn)制解碼器IC
二進(jìn)制編碼的十進(jìn)制摘要
我們在這里看到二進(jìn)制編碼的十進(jìn)制或BCD只是十進(jìn)制數(shù)字的4位二進(jìn)制代碼表示,每個十進(jìn)制數(shù)字在整數(shù)和小數(shù)部分中替換為二進(jìn)制等效。 BCD代碼使用4位來表示0到9的10位十進(jìn)制數(shù)字。
因此,例如,如果我們想要顯示0到9(一位數(shù))范圍內(nèi)的十進(jìn)制數(shù)字,我們會需要4個數(shù)據(jù)位(半字節(jié)),0到99范圍內(nèi)的十進(jìn)制數(shù),(兩位數(shù))我們需要8位(一個字節(jié)),0到999范圍內(nèi)的十進(jìn)制數(shù),(三位數(shù)) )我們需要12位,依此類推。使用單字節(jié)(8位)存儲或顯示兩個BCD數(shù)字,允許字節(jié)保存00-99范圍內(nèi)的BCD編號,稱為壓縮BCD 。
標(biāo)準(zhǔn)二進(jìn)制編碼十進(jìn)制代碼通常稱為加權(quán)8421 BCD代碼,其中8,4,2和1表示從最高有效位(MSB)開始并向最低有效位開始的不同位的權(quán)重位(LSB)。 BCD碼的各個位置的權(quán)重為: 2 3 = 8 , 2 2 = 4 , 2 1 = 2 , 2 0 = 1 。
主要二進(jìn)制編碼十進(jìn)制系統(tǒng)的優(yōu)點(diǎn)在于,與純二進(jìn)制系統(tǒng)相比,它是一種快速有效的系統(tǒng),可將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。但是BCD代碼是浪費(fèi)的,因?yàn)樵S多4位狀態(tài)(10到16)沒有使用,但十進(jìn)制顯示有重要的應(yīng)用。
十進(jìn)制數(shù) | BCD 8421代碼 |
0 | 00000000 |
1 | 00000001 |
2 | 00000010 |
3 | 00000011 |
4 | 00000100 |
5 | 00000101 |
6 | 00000110 |
7 | 00000111 |
8 | 00001000 |
9 | 00001001 |
10(1 + 0) | 00010000 |
11(1 + 1) | 00010001 |
12(1 + 2) | 00010010 |
... | ... |
20(2 + 0) | 00100000 |
21(2 + 1) | 00100001 |
22(2 + 2) | 00100010 |
等,繼續(xù)以四人為一組 |
-
解碼器
+關(guān)注
關(guān)注
9文章
1129瀏覽量
40636 -
真值表
+關(guān)注
關(guān)注
0文章
25瀏覽量
15139 -
二進(jìn)制數(shù)
+關(guān)注
關(guān)注
0文章
12瀏覽量
7717
發(fā)布評論請先 登錄
相關(guān)推薦
評論