如果将内存的数据(例如,10B3)提取转换成十六进制形式(0x10B3)

yhwz_8888 2009-06-18 09:59:56

char kkk[2];
memset(kkk,0,2);

u_short tmpMiddle=ntohs(0x10B3);
memcpy(&kkk[0],&tmpMiddle,2);


怎么将kkk的这个值转换成0x10B3

...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xempo 2009-07-03
  • 打赏
  • 举报
回复
楼上的,我今天才看见。
ljhhh0123 2009-06-27
  • 打赏
  • 举报
回复
char dd[2];
*(short *)dd = 1;
if (dd[0]==1)printf("i need see: 0x%02X%02X",(unsigned char)kkk[1],(unsigned char)kkk[0]);
else printf("i need see: 0x%02X%02X",(unsigned char)kkk[0],(unsigned char)kkk[1]);

我看得先判断一下字节序吧。因为楼主调用过ntohs函数。

楼上的,人家都是十天前的事了。
xempo 2009-06-27
  • 打赏
  • 举报
回复
伤心的事有俩:
1,发了贴无人理。
2,回了贴无反应。
万元级掌柜给你这个一穷二白讲解,还楞的一声不哼。
ameyume 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 goodname 的回复:]
printf("i need see: 0x%02x%02x",(unsigned char)kkk[0],(unsigned char)kkk[1]);
[/Quote]
printf("i need see: 0x%02x%02x",(unsigned char)kkk[1],(unsigned char)kkk[0]);
先打印高位,再打印低位
goodname 2009-06-18
  • 打赏
  • 举报
回复
printf("i need see: 0x%02x%02x",(unsigned char)kkk[0],(unsigned char)kkk[1]);
yhwz_8888 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cj_gameboy 的回复:]
打印时候加个参数:
printf("i need see: %x", kkk);
进制只是人的理解,对于机器来说,不同的进制下存储结果是一样的。
[/Quote]
这里打出来应该是kkk的指针吧……
luc_cj 2009-06-18
  • 打赏
  • 举报
回复
打印时候加个参数:
printf("i need see: %x", kkk);
进制只是人的理解,对于机器来说,不同的进制下存储结果是一样的。
xempo 2009-06-18
  • 打赏
  • 举报
回复
我猜你是要打印出来。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧