KEIL C如何将16进制数组转换为10进制数组,且输出数组左端需要补0。

2025-04-07 11:36:58
推荐回答(2个)
回答1:

十六进制数组是8位的吗,暂且以8位为例吧,最大数是255。
转换为10进制数,就是BCD码吧?那应该是4位BCD码,即用16位二进制数表示,最高4位自然为0000。
unsigned char x; //x为十六进制数
unsigned int xbcd; //xbcd为转换后的十进数,即BCD码
xbcd=((x/100)<<8)+(x/10%10)*16+(x%10); //转换

回答2:

sprintf(SendBuf,"%010x",RcvBuf);//将d改x,试试!