如何将十六进制文件转存为十进制文件

小字 2010-09-26 09:39:53
用C++或Matlab均可
...全文
224 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaoyuan2 2010-09-26
  • 打赏
  • 举报
回复
unsigned char cc[1000];
int i, n, shengyu;
CString s, s2;
CStdioFile file;
file.Open("aaa.txt", CFile::modeCreate|CFile::modeWrite| CFile::typeText);

i=0;
n=12;
shengyu=1000;
while(shengyu>=n)
{
s.Format("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
cc[i], cc[i+1], cc[i+2], cc[i+3], cc[i+4], cc[i+5],
cc[i+6], cc[i+7], cc[i+8], cc[i+9], cc[i+10], cc[i+11]);
file.WriteString(s);
i=i+n;
shengyu=shengyu-n;
}

s2.Format("%02x", cc[i]);
i++;
shengyu--;
while(shengyu>0)
{
s.Format(" %02x", cc[i]);
s2=s2+s;
i++;
shengyu--;
}
file.WriteString(s2);
justkk 2010-09-26
  • 打赏
  • 举报
回复
#include <stdio.h>
main()
{
int a;
sscanf("FE", "%x", &a);
printf("a=%d\n", a);
}

从文件中读取时,可以把sscanf换成fscanf
小字 2010-09-26
  • 打赏
  • 举报
回复
是用UE默认打开方式打开的,即双击查看内容。

另外,论坛的搜索功能很不好用,每次都查不到内容,一条结果都没有……
justkk 2010-09-26
  • 打赏
  • 举报
回复
文件的内容就是这样子的?还是你用UE的16进制方式查看的
如果是前者,论坛里有16进制转换函数,搜一下
小字 2010-09-26
  • 打赏
  • 举报
回复
FE FF 05 00 0b 00 10 00 1D 00 26 00 21 00 1E 00
20 00 20 00 2E 00 42 00……
等等

希望能做到以十二个数据为一组(比如上面就列出了两组),顺次排列下去

需要把十六进制数据转化为相应的十进制,依然以空格分隔开

不分组 能做到转化进制也可以
justkk 2010-09-26
  • 打赏
  • 举报
回复
啥样的16进制?
muzizongheng 2010-09-26
  • 打赏
  • 举报
回复
CStdioFile 的ReadString读取每行, 然后在得到的每行的string里 替换空格, 以每2个字符 用_tcstol(string, NULL, 10)转换成10进制, 然后 再%s专为string, 累计++ , 然后用CStdioFilewritestring就可以了。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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