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语言的。 展开
unsigned char yy[8]={0x11,0x22,0x33,0x44,0xAA,0xBB,0xCC,0xDD}; ,
unsigned long data1,data2;
然后怎么定义可以使得data1=0x11223344;data2=0xAABBCCDD;
求大神帮忙写下程序,C语言的。 展开
展开全部
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
char c[16];
sprintf(c,"%02x%02x%02x",array[0],array[1],array[2]);
printf("%s",c);
关键就在printf的格式符%02x 表示输出2位十六进制数并在前面补0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用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;
}
写了个小程序,你看一下。
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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();
}
#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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写的好像是对的呀,可以这样赋值
0x表明了它是十六进制数
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];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询