| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 697 人关注过本帖
标题:求助c语言16进制转化为2进制
只看楼主 加入收藏
ationgu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-9-4
收藏
 问题点数:0 回复次数:4 
求助c语言16进制转化为2进制
例如T.txt文件中包含以下16进制数字(如下图排列一个数字占一整行)
0x47,
0x49,
0x46,
0x38,
0x39,
0x61,
0x88,
怎样将它转换成2进制并寸在另一个文件里或者覆盖原文件
如能告知不胜感谢
搜索更多相关主题的帖子: 进制 
2006-09-12 18:36
HuiSky
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-5-13
收藏
得分:0 

int i=0;
while(!feof(fp))
{
fscanf(fp,"%x",&array[i++]);
}
读完再进行储存。
16进制换成2进制你应该没问题。


2006-09-12 20:44
zjq9931
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-8-11
收藏
得分:0 
是不是一字符形式输出啊?
2006-09-12 21:17
ationgu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-9-4
收藏
得分:0 
是以字符形式输出,读取和输出的格式都是一样的
2006-09-13 09:30
ationgu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-9-4
收藏
得分:0 

问题已经解决,程序如下

#include <stdio.h>
#include <iostream.h>

int main()
{
unsigned int num;
unsigned int bit;
int start_print, i;


FILE *fp1 = fopen("g:\\work\\G_C401.OUT", "rt");
FILE *fp2 = fopen("g:\\B.txt", "wt");
if (!fp1 || !fp2)
{
if (fp1) fclose(fp1);
if (fp2) fclose(fp2);
return 1;
}


int ret = fscanf(fp1, "0x%x,\n", &num);
cout << ret << endl;
while( ret )
{
start_print = 0;

for (i=31; i>=0; i--)
{
bit = ( ((1 << i) & num ) != 0 );
if (!start_print && bit != 0)
start_print = 1;
if (!start_print && i==0)
start_print = 1;

if (start_print)
fprintf(fp2, "%d", bit);
}
fprintf(fp2, ",\n");

ret = fscanf(fp1, "0x%x,\n", &num);
// if(feof(fp1)>0)
// break;
}

fclose(fp1);
fclose(fp2);
return 0;
}

2006-09-13 17:35
快速回复:求助c语言16进制转化为2进制
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021048 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved