C语言中怎么把16进制转换成bcd码

Python097

C语言中怎么把16进制转换成bcd码,第1张

void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码{u8 i,tempfor(i=0i<leni++){temp=pBuff[i]/10time[i]=pBuff[i]%10+temp*16}}

#include<stdio.h>

char bcd[10][5]={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001"}

void hex2bcd(int x)

{if(x>9)hex2bcd(x/10)

 printf("%s ",bcd[x%10]) 

}

int main()

{int n

 printf("请输入一个十六进制数:")

 scanf("%x",&n)

 hex2bcd(n)

 return 0

}

你不应该写16进制转BCD码的程序,你应该写10进制转BCD码的程序,例如 36—>0x36 这就是10进制转BCD码,而你所做的16进制转BCD码是这样的:0x36—>0x36