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

目标数组:ucharSendBuf[10]源数组:ucharRcvBuf[3]我试过sprintf(SendBuf,"%010d",RcvBuf);不起作用请高手请教,谢... 目标数组:uchar SendBuf[10]
源数组: uchar RcvBuf[3]
我试过sprintf(SendBuf,"%010d",RcvBuf);不起作用
请高手请教,谢谢
展开
 我来答
lycdl
高粉答主

推荐于2016-04-06 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:5026万
展开全部
十六进制数组是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); //转换
匿名用户
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); }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式