单片机C语言中char转换成char[]数组的问题请教

如题,比如chara=0xAA0xAA对应的二进制是10101010,所以如何转换为charb[8]={'1','0','1','0','1','0','1','0'};... 如题,比如char a=0xAA 0xAA对应的二进制是10101010,所以如何转换为 char b[8]={'1','0','1','0','1','0','1','0'};呢?另外同样的情况int a=1234如何转换为char a={'1','2','3','4'};呢?我是取得P1口的值,然后将这个值转换成字符数组。请各位高手帮忙!!!不胜感激!!
不好意思各位,应该是我的表达有误。各位说得都不错,不过我想知道的是如何转换,单片机的P1口只是举个例子。关键是其它时候需要用到转换。谢谢各位!
展开
 我来答
zhxiufan
推荐于2016-07-27 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38384
国家科技进步奖

向TA提问 私信TA
展开全部
示范一下,供参考
uchar * chang(uchar dat)
{
uchar b[8],i;
for(i=0;i<8;i++)
{
if(dat&0x01)b[i]=1;
else b[i]=0;
dat>>=1;
}
return(b);
}
至于x=1234之类的可以调用<stdlib.h>中的 atof(char *str)来实现。
百度网友914ba41
2012-09-22 · TA获得超过1608个赞
知道小有建树答主
回答量:1217
采纳率:50%
帮助的人:933万
展开全部
单片机的P1口是八位 一个字符占一个字节 也是八位 所以你取得P1口的值就没必要转换数组啊 一个字符就够了啊
追问
我要做编码用途的,其中还涉及到lcd显示这个编码。所以需要转换成字符数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者hrthrjyt
2012-09-22 · 专注本地资讯发布,最新资讯尽在灏资源网
创作者hrthrjyt
采纳数:29 获赞数:83

向TA提问 私信TA
展开全部
第一种情况如下:
char a=0XAA;
char b[8];
int j[8]={0,0,0,0,0,0,0,0};
for(i=7;i>=0;i--)
{
a>>=i;
j[i]=a|0x00;
b[8-i]=j[i]<<=7|0x00;
b[8-i]=b[8-i]>>=7|0x00;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
记住一座城
2012-09-22 · TA获得超过728个赞
知道小有建树答主
回答量:1091
采纳率:33%
帮助的人:665万
展开全部
把每一位分离出来就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式