Decimal=bcd4;先取bcd碼的高位,因為整個BCD碼表示數(shù)不會超過99,所以定義成uchar就完全可以了。 return(Decimal=Decimal*10+(bcd=0x0F)),就是高位乘10加上原來數(shù)的低位,這就轉(zhuǎn)成10進制數(shù)了。
站在用戶的角度思考問題,與客戶深入溝通,找到駐馬店網(wǎng)站設(shè)計與駐馬店網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋駐馬店地區(qū)。
#includestdio.h
#includestring.h
int main()
{
char a[20],b[5];
int i,result = 0,k = 1,j = 0;
printf("輸入一個二進制數(shù):\n");
gets(a);
for(i = strlen(a)-1;i = 0;i --)
{
if(a[i] == '1') result += 1 (k-1); //如果是1,用1*位權(quán)
if(k == 4 || i == 0) //每四位計算一次結(jié)果(result)。
//如果到了最高位(i==0)不足四位(比如100 0000),也計算
{
switch(result)
{
case 10: b[j++]='A';break; //大于等于十轉(zhuǎn)化成字母
case 11: b[j++]='B';break;
case 12: b[j++]='C';break;
case 13: b[j++]='D';break;
case 14: b[j++]='E';break;
case 15: b[j++]='F';break;
default: b[j++]=result + '0';break;
}
result = 0; //結(jié)果清零
k = 0; //表示位權(quán)的K清零
}
k ++; // 初始位權(quán)為1
}
b[j] = '\0';
printf("結(jié)果是:\n");
for(i = strlen(b)-1;i = 0;i --)
printf("%c",b[i]);
printf("\n");
return 0;
}
void HextoBCD(u8 *pBuff,u8 len) //十六進制轉(zhuǎn)為BCD碼
{
u8 i,temp;
for(i=0;ilen;i++)
{
temp=pBuff[i]/10;
time[i]=pBuff[i]%10+temp*16;
}
}
#include?stdio.h
#include?stdlib.h
#include?string.h
#define?INPUT_BCD_MAX_LENGTH?10
int?main(void)
{
//
char?bcd[?INPUT_BCD_MAX_LENGTH?];
char?*bin?=?NULL;
char?t_bin[?6?];
int?i,?j,?q,?r,?t,?bcd_len,?bin_len;
printf(?"Please?enter?the?decimal?code:?"?);
scanf("%s",?bcd);
bcd_len?=?strlen(?bcd?);
bin_len?=?bcd_len?*?6?+?1;
bin?=?(?char?*?)malloc(?bin_len?);
memset(?bin,?0,?bcd_len?*?6?+?1?);
for(?i?=?0;?i??bcd_len;?i++?)
{
/*?把字符轉(zhuǎn)換為數(shù)字*/
q?=?bcd[?i?]?-?'0';
//將每個十進制轉(zhuǎn)換為四位二進制
for(?j?=?0;?j??4;?j++?)
{
t?=?q?/?2;
r?=?q?%?2;
q?=?t;
if(?q?==?0??r?!=?1?)
{
t_bin[?j?]?=?'0';
}
else
{
//把數(shù)字轉(zhuǎn)換為字符
t_bin[?j?]?=?r?+?'0';
}
}
t_bin[?j?]?=?'?';
t_bin[?j?+?1?]?=?'\0';
strrev(?t_bin?);
strcat(?bin,?t_bin?);
}
printf(?"BCD?coded?decimal:\n%s\n",?bin?);
free(?bin?);
bin?=?NULL;
system("pause");
return?0;
}