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次方...