KEIL C如何将16进制数组转换为10进制数组,且输出数组左端需要补0。
目标数组:ucharSendBuf[10]源数组:ucharRcvBuf[3]我试过sprintf(SendBuf,"%010d",RcvBuf);不起作用请高手请教,谢...
目标数组:uchar SendBuf[10]
源数组: uchar RcvBuf[3]
我试过sprintf(SendBuf,"%010d",RcvBuf);不起作用
请高手请教,谢谢 展开
源数组: uchar RcvBuf[3]
我试过sprintf(SendBuf,"%010d",RcvBuf);不起作用
请高手请教,谢谢 展开
展开全部
十六进制数组是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); //转换
转换为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); //转换
2011-04-28
展开全部
sprintf(SendBuf,"%010x",RcvBuf);//将d改x,试试!
更多追问追答
追问
改成X就是16进制了,我想转成10进制输出
追答
short *p=(short *)RcvBuf;
sprintf(SendBuf,"%010d",*p);
//测试程序,将'a','b'转换为10进制。
#include "stdio.h"
void main() { unsigned char RcvBuf[3]={'a','b','\0'};
short *p=(short *)RcvBuf;
printf("%d", *p); }
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询