如何将16 字节的char 用十六进制显示成32 位?

limlzm 2003-08-22 04:45:12
unsigned char aa[16];
如何将aa转成十六进制,变成32位字节存放到文件中?
...全文
159 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingrunx 2003-08-27
  • 打赏
  • 举报
回复
char tmpstr[32], *p = tmpstr;

for(int i=0; i<16; i++) {
p+= sprintf(p, "%02X", digest[i]);
}
limlzm 2003-08-27
  • 打赏
  • 举报
回复
结贴:我已经把问题解决了,其实这是md5的问题,因为digest[16]出来的是16个字节的字符,把每一个字符转换成16进制好像'嗨' = 'ad'(打个比方) 然后再拆分F 和E 分别把他们转换成十六进制代码 好像 35, 41,16个就转换成32位了。
Behard 2003-08-22
  • 打赏
  • 举报
回复
还是没有理解楼主的意思
柯本 2003-08-22
  • 打赏
  • 举报
回复
不明白
1 是16个字节转成16个32位十六进制数吗?(要按intel顺序转吗?)
2 是16个字节转成4个32位十六进制数吗?(同上)
3 是16个字节转成16个32位十六进制的字符吗?
不过不管是那种,都应是很简单的,请楼主再说清楚些
limlzm 2003-08-22
  • 打赏
  • 举报
回复
原整的题目是这样的,由于对文件进行hash,aa.MD5Final(digest);后,md5码就放到digest里面,由于digest定义是这样的 unsigned char digest[16],把十六字节的digest放到一个文件里,用十六进制的形式存放要求是32位存放的,不能补0就完事,如何实现?
pcclever 2003-08-22
  • 打赏
  • 举报
回复
十六进制变成32字节??aa一共就两个字节怎么变成32个字节??后面补30个0吧。

楼主的意思是不是要把它变成两个十六位,两个加在一起是32位的??

只能猜到这里了。
swites 2003-08-22
  • 打赏
  • 举报
回复
IntToHex(aa[i],2)函数就可以完成2位十六进制显示
存放与进制无关,如果你想用32位字节存放到文件中用(WORD)aa进行强制转换
yhec 2003-08-22
  • 打赏
  • 举报
回复
举个例呀

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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