BCD碼的加減法,用BCD碼進行十進位制數加法

時間 2022-02-09 14:55:07

1樓:啞然

當兩個bcd碼相加,如果和等於或小於 1001(即十進位制數9),不需要修正;

如果相加之和在 1010 到1111(即十六進位制數 0ah~0fh)之間,則需加 6 進行修正;

如果相加時,本位產生了進位,也需加 6 進行修正。

這樣做的原因是,機器按二進位制相加,所以 4 位二進位制數相加時,是按「逢十六進一」的原則進行運算的,而實質上是 2 個十進位制數相加,應該按「逢十進一」的原則相加。

16 與10相差 6,所以當和超過 9或有進位時,都要加 6 進行修正。下面舉例說明。

【例 1.3】 需要修正 bcd碼運算值的舉例。

計算 5+8:

解:將 5 和 8 以 8421 bcd輸入機器,則運算如下:

0 1 0 1

+) 1 0 0 0

1 1 0 1 結果大於 9

+) 0 1 1 0 加 6 修正

1 0 0 1 1 即13 的 bcd碼

結果是 0011,即十進位制數3,還產生了進位。5+8=13。

bcd碼的分類:

bcd碼可分為有權碼和無權碼兩類:

有權bcd碼有8421碼、2421碼、5421碼,其中8421碼是最常用的;無權bcd碼有餘3碼,餘3迴圈碼等。

1、8421:

8421 bcd碼是最基本和最常用的bcd碼,它和四位自然二進位制碼相似,各位的權值為8、4、2、1,故稱為有權bcd碼。

和四位自然二進位制碼不同的是,它只選用了四位二進位制碼中前10組**,即用0000~1001分別代表它所對應的十進位制數,餘下的六組**不用。

2、5421和2421:

5421 bcd碼和2421 bcd碼為有權bcd碼,它們從高位到低位的權值分別為5、4、2、1和2、4、2、1。

這兩種有權bcd碼中,有的十進位制數碼存在兩種加權方法。

這說明5421 bcd碼和2421 bcd碼的編碼方案都不是惟一的,表1-2只列出了一種編碼方案。

2樓:風中一縷薰

加法:由於編碼是將每個十進位制數用一組4位二進位制數來表示,因此,若將這種bcd碼直接交計算機去運算,由於計算機總是把數當作二進位制數來運算,所以結果可能會出錯。例:

用bcd碼求38+49。

解決的辦法是對二進位制加法運算的結果採用"加6修正,這種修正稱為bcd調整。即將二進位制加法運算的結果修正為bcd碼加法運算的結果,兩個兩位bcd數相加時,對二進位制加法運算結果採用修正規則進行修正。

修正規則:

1、如果任何兩個對應位bcd數相加的結果向高一位無進位,若得到的結果小於或等於9,則該位不需修正;若得到的結果大於9且小於16時,該位進行加6修正。

2、如果任何兩個對應位bcd數相加的結果向高一位有進位時(即結果大於或等於16,注意不是修正時的進位),該位進行加6修正。

3、低位修正結果使高位大於9時,高位進行加6修正。

減法:兩個組合bcd碼進行減法運算時,當低位向高位有借位時,由於"借一作十六"與"借一作十"的差別,將比正確的結果多6,所以有借位時,可採用"減6修正法"來修正。

兩個bcd碼進行加減時,先按二進位制加減指令進行運算,再對結果用bcd調整指令進行調整,就可得到正確的十進位制運算結果。

加法例子:

1、用bcd碼求35+21:35-> 0011 0101+;21-> 0010 0001=;0101 0110->56

注意:0101+0001並沒有滿足上述3條規則,同時0011+0010也沒有滿足上述3條規則,所以結果不作處理。

2、bcd碼求25+37:25->0010 0101+;37->0011 0111=;0101 1100+(低位0101+0111=1100->12>9所以需要調整);06-> 0110=;0110 0010->62

注意:在給低位加0110調整時也有向高位進位發生,但是這是在調整時的進位,故不做處理。

3樓:假面

bcd碼減法也可用補碼運算代替,原理和之前寫過的八位二進位制數補碼運算原理相同。

八位二進位制數的範圍是00h~ffh,八位bcd碼的範圍是00h~99h,也可以像補碼運算一樣畫一個時鐘,起點是00h,00h逆時針的第一個數是99h。只要有時鐘,就可以用補碼運算規則,那麼bcd碼的補碼如何求。

舉例說明,紅色弧線便是08h的補碼,計算方法是99h+01h-08h = 9ah - 08h,所以用9ah減去該bcd碼,便可得其補碼。

另外,做bcd碼加減法時,還要進行調整,因為十六進位制加法是逢16進1,bcd碼是逢10進1,相差6。

4樓:匿名使用者

二進位制編碼的十進位制數,簡稱bcd碼(binarycoded decimal). 這種方法是用4位二進位制碼的組合代表十進位制數的0,1,2,3,4,5,6 ,7,8,9 十個數符。4位二進位制數碼有16種組合,原則上可任選其中的10種作為**,分別代表十進位制中的0,1,2,3,4,5,6,7,8,9 這十個數符。

最常用的bcd碼稱為8421bcd碼,8.4.2.

1 分別是4位二進數的位取值。 點選此處將給出十進位制數和8421bcd編碼的對應關係表。

1、bcd碼與十進位制數的轉換

bcd碼與十進位制數的轉換.關係直觀,相互轉換也很簡單,將十進位制數75.4轉換為bcd碼如:

75.4=(0111 (0101.0100)bcd 若將bcd碼1000 0101.0101轉換為十進位制數如: (1000 0101.0101)bcd=85.5

注意:同一個8位二進位制**表示的數,當認為它表示的是二進位制數和認為它表示的是二進位制編碼的十進位制數時,數值是不相同的。

例如:00011000,當把它視為二進位制數時,其值為24;但作為2位bcd碼時, 其值為18。

又例如00011100,如將其視為二進位制數,其值為28,但不能當成bcd碼,因為在8421bcd碼中,它是個非法編碼 .

2、bcd碼的格式

計算機中的bcd碼,經常使用的有兩種格式,即分離bcd碼,組合bcd碼。

所謂分離bcd碼,即用一個位元組的低四位編碼表示十進位制數的一位,例如數82的存放格式為:

_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示無關值。

組合bcd碼,是將兩位十進位制數,存放在一個位元組中,例82的存放格式是1000 0010

3、bcd碼的加減運算

由於編碼是將每個十進位制數用一組4位二進位制數來表示,因此,若將這種bcd碼直接交計算機去運算,由於

計算機總是把數當作二進位制數來運算,所以結果可能會出錯。例:用bcd碼求38+49。

解決的辦法是對二進位制加法運算的結果採用"加6修正,這種修正稱為bcd調整。即將二進位制加法運算的結果修正為bcd碼加法運算的結果,兩個兩位bcd數相加時,對二進位制加法運算結果採用修正規則進行修正。修正規則:

(1)如果任何兩個對應位bcd數相加的結果向高一位無進位,若得到的結果小於或等於9,則該不需修正;若得到的結果大於9且小於16時,該位進行加6修正。

(2)如果任何兩個對應位bcd數相加的結果向高一位有進位時(即結果大於或等於16),該位進行加6修正.

(3)低位修正結果使高位大於9時,高位進行加6修正。

下面通過例題驗證上述規則的正確性。

用bcd碼求35+21 bcd碼求25+37 用bcd碼求38+49 用bcd碼求42+95

用bcd碼求91+83 用bcd碼求94+7 用bcd碼求76+45

兩個組合bcd碼進行減法運算時,當低位向高位有借位時,由於"借一作十六"與"借一作十"的差別,將比正確的結果多6,所以有借位時,可採用"減6修正法"來修正.兩個bcd碼進行加減時,先按二進位制加減指令進行運算,再對結果用bcd調整指令進行調整,就可得到正確的十進位制運算結果。 實際上,計算機中既有組合bcd數的調整指令,也有分離bcd數的調整指令。

另外,bcd碼的加減運算,也可以在運算前由程式先變換成二進位制數,然後由計算機對二進位制數運算處理,運算以後再將二進位制數結果由程式轉換為bcd碼

用bcd碼進行十進位制數加法

5樓:籍好潔彤山

樓上寫錯了,產生進位應該還加上0110(即十進位制的6)進行修正zd,因為bcd碼每四位數字表示內一個一位十進位制數,但是四位二進位制數能表示16個數,當產生進位容時,有6個數沒有加上,故產生進位時,要加上6

(1)0111

0100

1000

+0001

0110

1001

-------------------

1000

1011

0001

+0110

0110

-------------------

1001

0001

0111

748+169

=917

(2)0011

1001

1001

+0100

1000

1001

-------------------

1000

0010

0010

+0110

0110

-------------------

1000

1000

1000

399+489

=888

6樓:做而論道

:0 2 5 6 -----> 0000 0010 0101 0110

+ 0 7 8 9 -----> + 0000 0111 1000 1001

1 0 4 5 0000 1001 1101 1111

最後面的1111,應該是十五,使用調整指令,就會給它加6,那麼它就變成1 0101了。

還有兩個數字,都需要調整。

最終結果:

0 2 5 6 -----> 0000 0010 0101 0110

+ 0 7 8 9 -----> + 0000 0111 1000 1001

1 0 4 5 0001 0000 0100 0101

7樓:匿名使用者

bcd碼(binary-coded decimal‎)亦稱二進碼十進數或二-十進位制**。用4位二進位制數來表示1位十進位制數中的0~9這10個數碼。

bcd碼可分為有權碼和無權碼兩類:有權bcd碼有8421碼、2421碼、5421碼,其中8421碼是最常用的;無權bcd碼有餘3碼、格雷碼等。

所以你的答案無法解答。你要指出具體是什麼bcd碼。當然一般情況下指的是8421碼,具體如下:

256=0010 0101 0110; 789=0111 1000 1001;

相加:0010 0101 0110

+0111 1000 1001

---------------------------------

1001 1101 1111=9df(16進位制)=9*16^2+d*16+f=2527(10進位制)

分式的加減法,分式的加減法則

歡歡喜喜 12 m 2 9 2 3 m 2 m 3 分析 這是異分母分式相加減且分母都是多項式,所以應先通分,確定最簡公分母,因為 m 2 9 m 3 m 3 3 m m 3 所以 最簡公分母是 m 3 m 3 解答 原式 12 m 3 m 3 2 m 3 m 3 m 3 2 m 3 m 3 m 3...

加減法的簡便運算公式,加減法的簡便運算怎麼做?

簡便計算中最常用的方法是乘法分配律。乘法分配律指的是ax b c axb axc其中a,b,c是任意實數。相反的,axb axc ax b c 叫做乘法分配律的逆運用 也叫提取公約數 尤其是a與b互為補數時,這種方法更有用。也有時用到了加法結合律,比如a b c,b和c互為補數,就可以把b和c結合起...

有理數加減法運算,有理數的加減法如何運算?

輿亹 1 3 9 2 85 15 3 3 3 4 3.5 5 絕對值不相等的異號兩數相加,取 並用 互為 的兩個數相加得0。1 45 23 2 1.35 6.35 3 2.25 4 9 7 一個數同0相加,仍得 1 9 0 2 0 15 b 加法交換律 a b 加法結合律 a b c 1 1.76 ...