C语言中十六进制字符数组转化为字符串

假设我定义unsignedcharyy[8]={0x11,0x22,0x33,0x44,0xAA,0xBB,0xCC,0xDD};,unsignedlongdata1,d... 假设我定义
unsigned char yy[8]={0x11,0x22,0x33,0x44,0xAA,0xBB,0xCC,0xDD}; ,
unsigned long data1,data2;
然后怎么定义可以使得data1=0x11223344;data2=0xAABBCCDD;
求大神帮忙写下程序,C语言的。
展开
 我来答
lordsosio
2009-05-20 · TA获得超过1425个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:439万
展开全部
byte array[3]={0x11,0x0f,0xac};
char c[16];
sprintf(c,"%02x%02x%02x",array[0],array[1],array[2]);
printf("%s",c);

关键就在printf的格式符%02x 表示输出2位十六进制数并在前面补0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DerekTan
2009-05-20 · TA获得超过616个赞
知道小有建树答主
回答量:464
采纳率:100%
帮助的人:414万
展开全部
可以用sprintf实现,这样最方便了。
写了个小程序,你看一下。
#include <stdio.h>

int main() {
int a=0x11, b=0x0f, c=0xac;
char result[20];
sprintf(result, "%x%x%x", a, b, c);
printf("%s\n", result);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
初吻给了烟
2019-01-16
知道答主
回答量:1
采纳率:0%
帮助的人:783
展开全部
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
char buff[6] = {0x1,0x2,0x3,0x4,0x44,0x55};
int i;
char s[20] = {0};
for (i = 0; i < 6; i++)
{
sprintf(&s[2*i], "%02X", buff[i]); //
}
//s[12] = '\0';
printf("s is : %s \r\n",s);

getchar();

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
衡阳落雁
2014-03-12 · 超过71用户采纳过TA的回答
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:150万
展开全部
你写的好像是对的呀,可以这样赋值
0x表明了它是十六进制数
更多追问追答
追问
我想问的就是  怎么赋值    把yy[0],yy[1],yy[2],yy[3]的值变成0x11223344给data1    后面的给data2
追答
data1=yy[3]*256*256*256+yy[2]*256*256+yy[1]*256+yy[0];
data2=yy[7]*256*256*256+yy[6]*256*256+yy[5]*256+yy[4];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式