有關十進位制整數 BCD 轉換成二進位制的電路設計

時間 2021-09-14 13:35:44

1樓:匿名使用者

在數學中,我們都知道隨便一個十進位制數如5468,那麼它的計算過程可以轉換為:5468=5*1000+4*100+6*10+8,因此bcd碼轉成二進位制數的演算法就是:

abcd=a*1000+b*100+c*10+d。

這種演算法是最常規的一種演算法,裡面需要用到乘法器以及加法器,這種實現方式比較耗費資源,下面夢翼師兄會介紹一種演算法,這種演算法需要用到加法和移位來完成bcd轉二進位制數的功能,從而儘可能的節約邏輯資源。

二進位制碼左移一位等於未左移的二進位制碼*2,例如有二進位制碼101001,轉成十進位制等於41,左移一位得到1010010,轉成十進位制等於82。

也就是說二進位制碼左移1位加上左移3位可以等效於二進位制碼乘以10。

用例項分析:十進位制數29;

用bcd碼錶示:十位上的十進位制數為2==bcd碼錶示為0010;個位上的十進位制數9===bcd碼錶示為1001;所以總的來說十進位制數29用bcd碼錶示為:00101001。

轉換過程:把bcd碼0010(十進位制數為十位上的2)右移4位(其實表示當作一個個位數,或者說單純的數值),然後乘以10還原到十進位制的權重(因為這個數本來表示的就是十進位制數中的十位)。處理完十位上的數,接著處理個位上的數。

因為bcd碼的權重和二進位制的前四位權重是一樣(2^n,n為位數),所以直接用前面的十位上的數加上它就可以了。

簡單點分析:0010(十位上的2bcd碼錶示)×10+1001(個位上的9bcd碼錶示)=29的二進位制數

c**表示:#define bcd_to_bin(val)   ((((val) >> 4) * 10) +  ((val)&15))。

2樓:匿名使用者

有現成的晶片。

晶片(1)74ls154

:4-16線譯碼器,四位2進位制數(4位bcd碼編制)轉換為16位2進位制數

晶片(2)74ls138

:3-8線譯碼器,3bcd---轉8位2進位制數你可以去www.21ic.com上搜尋這兩個晶片的原理圖。原理圖太大了上傳不了。

3樓:匿名使用者

我的意思是你不可能找到比我找個答案更好的答案了,自己找個人或者去網上搜搜吧,200分提問這樣的問題確實浪費,根本沒有人去幫你解答,這是一件大工程,說實話,弄一篇這樣的**我都可以回答一兩千的高分問題了,不要在這裡等答案誤事

4樓:

這個不難麼,用一個大的case語句就可以完成了~~~~~

給定一個十進位制數(整數或小數)如何轉化為二進位制和8421bcd碼,以及給定8421bcd碼如何轉化為十進位制;

5樓:2一瞬間

8421bcd碼轉化為十進位制:

8421碼一共四位 每位都是0或者是1 假設給出的碼是1010 那麼每位分別和和8421對應 可得

8*1+4*0+2*1+1*0=10(十進位制) 再者 碼1100 8*1+4*1+2*0+1*0=12(十進位制) 就是四位和8421對應在進行相加

十進位制數(整數或小數)轉化為8421bcd碼

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

十進位制數(整數或小數)轉化為二進位制

整數除以2,商繼續除以2,得到0為止

22 / 2 11 餘0

11/2 5 餘 1

5 /2 2 餘 1

2 /2 1 餘 0

1 /2 0 餘 1

所以22的二進位制是10110

小數乘以2,取整,小數部分繼續乘以2,取整,得到小數部分0為止,將整數順序排列。

0.8125x2=1.625 取整1,小數部分是0.625

0.625x2=1.25 取整1,小數部分是0.25

0.25x2=0.5 取整0,小數部分是0.5

0.5x2=1.0 取整1,小數部分是0,結束

所以0.8125的二進位制是0.1101

十進位制22.8125等於二進位制10110.1101

將**(10000011)8421bcd轉換成二進位制數為多少

6樓:

每一個十進位制數對應4位bcd碼,(10000011)8421bcd轉換成二進位制數為1010011。

具體轉換過程:10000011 bcd碼對應的十進位制數為83,然後再將83轉換為二進位制。用83依次除2,將餘數逆向排序。

83/2=41 餘1,41/2=20 餘1,20/2=10 餘0,10/2=5 餘0,5/2=2 餘1,2/2=1 餘0, 1/2=0 餘 1。餘數逆向排序得1010011。

擴充套件資料

8421 bcd碼是用四位二進位制碼來表示一位十進位制數。但是隻能表示0~9的十進位制數。

十進位制數轉二進位制:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為小於1時為止,最後將得到的餘數進行逆向排序即可。

7樓:匿名使用者

1、binary-coded decimal‎,簡稱bcd,用4位二進位制數來表示1位十進位制數中的0~9這10個數碼,簡稱bcd碼,即bcd**。日常所說的bcd碼大都是指8421bcd碼形式。

2、10000011按四位分組,1000 0011,然後按上表查得8,3,即得到83。

3、10000011(二進位制bcd)=83(10)

8樓:匿名使用者

暈那個答案亂寫的~~~(10000011)8421bcd=83(十進位制)=1010011(二進位制)

9樓:匿名使用者

1000010000100001101111001101

十進位制數(整數或小數)如何轉化為二進位制?給定8421bcd碼如何轉化為十進位制?

10樓:2一瞬間

8421bcd碼轉化為十進位制:

8421碼一共四位 每位都是0或者是1 假設給出的碼是1010 那麼每位分別和和8421對應 可得

8*1+4*0+2*1+1*0=10(十進位制) 再者 碼1100 8*1+4*1+2*0+1*0=12(十進位制) 就是四位和8421對應在進行相加

十進位制數(整數或小數)轉化為8421bcd碼

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

十進位制數(整數或小數)轉化為二進位制

整數除以2,商繼續除以2,得到0為止

22 / 2 11 餘0

11/2 5 餘 1

5 /2 2 餘 1

2 /2 1 餘 0

1 /2 0 餘 1

所以22的二進位制是10110

小數乘以2,取整,小數部分繼續乘以2,取整,得到小數部分0為止,將整數順序排列。

0.8125x2=1.625 取整1,小數部分是0.625

0.625x2=1.25 取整1,小數部分是0.25

0.25x2=0.5 取整0,小數部分是0.5

0.5x2=1.0 取整1,小數部分是0,結束

所以0.8125的二進位制是0.1101

十進位制22.8125等於二進位制10110.1101

十進位制數怎樣換算成8421bcd碼?bcd碼又怎樣換算成十進位制數?

11樓:

十進位制數換算成8421bcd碼的方法如下:

1、十進位制換算bcd碼,整數從右邊開始,每個數是4位二進位制**。比如:(195)10=(1 1001 0101)bcd,小數和其他進位制轉換不一樣,是數位換算:

(0.28)10=(0.0010 1000)bcd。

bcd碼換算成十進位制數的方法如下:

1、bcd碼與十進位制數的轉換關係很直觀,相互轉換也很簡單,將十進位制數75.4轉換為bcd碼:7->0111,5->0101,4->0100所以拼成8421bcd碼的結果是:

(0111 0101.0100)bcd;若將bcd碼1000 0101.0101轉換為十進位制數:

1000->8,0101->5,0101->5所以結果是:(85.5)d。

二進位制編碼的十進位制數,簡稱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位二進數的位取值。

12樓:匿名使用者

十進位制換算bcd碼,整數從右邊開始,每個數是4位二進位制**,比如:(195)10=(1 1001 0101)bcd,小數和其他進位制轉換不一樣,是數位換算:(0.

28)10=(0.0010 1000)bcd

將給定的一個二進位制數轉換成十進位制碼(bcd)

十進位制數28轉換成的二進位制數是_______,對應bcd碼是_______。

13樓:到處

二進位制:11100

bcd:就是把每一位分別轉換為bcd碼,用4位二進位制數來表示1位十進位制數中的0~9這10個數碼 然後放到一塊,

0=0000

1=0001

2=0010

3=0011

4=0100

5=0101

6=0110

7=0111

8=1000

9=1001

所以2 = (0010)bcd

8 = (1000)bcd

因此,28 = (0010 1000)bcd

數位電路二進位制如何轉換8421bcd

14樓:南瓜蘋果

二進位制轉換8421bcd的思路如下:

給定一個二進位制數,要轉bcd碼。一個常用演算法就是不斷將該數除以10,以此依次分解出個位、十位、百位……上的數字,這些數字的4位二進位制數就是對應的bcd。但是這樣的演算法需要不斷做除法操作十分的麻煩。

可以使用名為加三左移法來完成。

這個演算法基於以下的事實:

一個數乘以2,相當於其二進位制左移1位;兩個bcd碼相加,如果結果大於9,需要加上6作為修正。

擴充套件資料

bcd碼的求和:

bcd碼使用4位二進位制數來表示十進位制中0~9這10個數的數碼。例如,十進位制的237,其bcd碼就是0010_0011_0111,但是其二進位制是1110_1101。

我們先來研究兩個4位的bcd碼相加的情況。設這兩個bcd碼對應的十進位制是a,b,其中a,b∈。此時只有3種情況:

1、0≤a+b≤9;

2、10≤a+b≤15;

3、16≤a+b≤18。

15樓:我拜通天

你要知道,8421bcd碼的轉換原理,是把十進位制數,每位數上的值轉換為二進位制,如16,分開為1和6,轉換為8421就為0001,0110

如果你不能理解,那麼就看看5421bcd碼吧,如5421bcd碼1000,0110,1001表示的十進位制是556:先是把每一位轉換,這裡是5421bcd,所以個,十,百位為分別為5*1+1=6,4*1+2*1=6,5*1=5,即為566十進位制數

負的十進位制數能否轉換成二進位制,十進位制負數轉換成二進位制數的方法?

就是該十進位制的補碼,負數的補碼 將該數的絕對值的二進位制形式按位取反再加1 比如 10 10的原碼 0000000000001010取反 1111111111110101 10的二進位制 1111111111110110這是按16位算的,同樣的方法,可以算8位32位64位的 當然可以了.在計算機中...

十進位制數10轉換成二進位制是多少,十進位制數127轉換成二進位制數是( )

布清安桂妝 二進位制數有兩個特點 它由兩個基本字元0,1組成,二進位制數運算規律是逢二進一。為區別於其它進製數,二進位制數的書寫通常在數的右下方注上基數2,或加後面加b表示。例如 二進位制數10110011可以寫成 10110011 2,或寫成10110011b,對於十進位制數可以不加註.計算機中的...

將二進位制101101101轉換成十進位制數怎麼轉換要

聖魔破天 二進位制轉化成十進位制的方法就是 每一位乘以二的這一位後面有幾位數的次方,例如 10就是,0位後面有0個數,所以就是0乘以2的0次方,1後面有1個數,所以就是1乘以2的1次方,最後所有結果相加就是最後轉換成的十進位制數 雨夜聽風過 101101101換算成 十進位制 第0位 1 2的0次方...