c語言十進制轉bcd碼
❶ 用c語言編寫輸入2個十進制數,輸出是一個壓縮的BCD碼(如輸入64,輸出 0110 0100 )
#include<stdio.h>
voidd2b(unsignedn,unsignedp)
{
if(p)
{
d2b(n/2,p-1);
printf("%d",n%2);
}
}
voidfunc(unsignedn)
{
if(n>9)
func(n/10);
d2b(n%10,4);
printf("");
}
intmain()
{
unsignedn;
scanf("%u",&n);
func(n);
return0;
}
❷ 十進制怎麼轉成BCD碼
十進制轉成BCD碼是整數從右邊開始,每個十進制數都用一組四位二進制數來表示。
壓縮BCD碼是分別由二進制數字來表示各十進制數位的二進制編碼記法。需要注意的是每個十進制數都用一組四位二進制數來表示。不足4位者(十進制數0到7)加添0字開頭,以湊足4位。比如將十進制數75轉換為BCD碼:7=0111,5=0101所以拼成BCD碼的結果是:(0111 0101)BCD。
(2)c語言十進制轉bcd碼擴展閱讀:
計算機只能識別二進制數,但人們卻熟悉十進制數,而不習慣用二進制數,因此,在計算機輸入和輸出數據時,經常採用十進制數。所不同的,這里的十進制數是用壓縮BCD碼來表示的。
壓縮BCD碼也廣泛地運用於各種電子設備中。特別是在測試儀表以及另外那些具有十進制輸入與/或輸出的設備中.運用得更普遍。十進位數字計數器.萬用表以及其它數字儀表,就是一類例子;數字電子表是另外一類例子。這與一個標准四位二進制計數器的前十個狀態相同。
❸ 匯編中十進制如何轉換為bcd碼
8421 還是?
❹ 如何將輸入得四位十進制數,轉成BCD碼,存在地址為3000H為起始地址的內存中。 (用c語言)
用 C 語言?
有點不像啊。
❺ c語言bcd碼轉十進制
這道題是輸入一個整數,然後轉成二進制,二進制在轉成BCD碼
❻ 十進制數15.78轉換為BCD碼是多少
十進制數15,78轉換為BCD碼是00010101、01111000。
用4位二進制數來表示1位十進制數中的0~9這10個數碼,簡稱BCD碼(Binary-CodedDecimal_)。
0=0000,1=0001、2=0010,3=0011、4=0100,5=0101、6=0110,7=0111、8=1000,9=1001、所以15,78轉換為BCD碼是00010101、01111000。
❼ C語言十進制轉二進制原理
原理是小於10時不變,大於9時用-10作為個位(半個位元組),而進位+6(即代碼中的0x06),因為+1對於4位二進制碼不一定產生進位。
c= i>>4;和d= i&0x0f;就是把一個位元組的i拆成了c(高4位)和d(低4位)兩個位元組,便於按BCD碼的單個字元操作。
這個函數只解決兩位數的十進制數變換問題,把2位十進制數變成了一位元組二位BCD碼,如把19變成了00011001,對應的十進制是25。所以它並沒有「將十進制數變換成一般意義上的二進制碼」一般意義上19的二進制碼是00010011,而非00011001。
(7)c語言十進制轉bcd碼擴展閱讀:
注意事項
十進制轉二進制可以使用庫函數itoa,itoa函數原型:char*itoa(int value,char*string,int radix);
例如:
#include<stdio.h>
intmain()
{
inta,s[20],i=0,rem;
printf("請輸入一個正整數: ");
scanf("%d",&a);
while(a){
rem=a%2;
a=a/2;
s[i++]=rem;
}
printf("二進制:");
while(i>0)
printf("%d",s[--i]);
printf(" ");
return0;
}❽ 將十進制數50.47轉換為BCD碼為多少
十進制轉成BCD碼是整數從右邊開始,每個十進制數都用一組四位二進制數來表示。
壓縮BCD碼是分別由二進制數字來表示各十進制數位的二進制編碼記法。需要注意的是每個十進制數都用一組四位二進制數來表示。不足4位者(十進制數0到7)加添0字開頭,以湊足4位。比如將十進制數75轉換為BCD碼:7=0111,5=0101所以拼成BCD碼的結果是:(0111 0101)BCD。
❾ 51單片機求助
運用c語言不存在10進制或者16進制,你這是剛從匯編轉c語言所遇到的問題,在c語言中不管你用哪種進製表示的數都是一樣的,多寫些程序就能明白。