您的位置:首页 > 编程语言 > C语言/C++

十进制二进制转换,C语言实现

2017-06-30 15:31 281 查看
     利用C语言读取一个TXT文件并将其中的0-255十进制数据转化成八位二进制序列,再以TXT文档存储,C语言中有itoa()函数也可以完成进制转换,更方便,但是要以固定位数输出不太方便。以下代码可以实现十进制到二进制的转换,并以TXT文档存储。由于最近做实验要用到,故写下来以备忘:

#include <stdio.h>

#include <stdlib.h>

FILE *fi,*fo;//文本指针

char fni[1024]="10.txt";//数组是为了存储文本名
char fno[1024]="2.txt";
int c;
int main()
 {
int i,a[8];
        fi=fopen(fni,"r");//以只读方式打开文件
        if (NULL==fi)
{
           fprintf(stderr,"Can not open file %s!\n",fni);
           return 1;
        }
       fo=fopen(fno,"w");//打开只写文件,若文件存在则长度清为 0,即该文件内容消失,若不存在则创建该文件
       if (NULL==fo) 
{
           fclose(fi);
           fprintf(stderr,"Can not create file %s!\n",fno);
           return 2;
        }
      while (1) //将文本中的十进制数转化为二进制
{
                if (1!=fscanf(fi,"%d",&c)) break;

for(i=0;i<8;i++)
{
a[7-i]=c%2;
c=c/2;
}
for(i=0;i<8;i++)

                fprintf(fo,"%d \n",a[i]);//将二进制数逐位输出
    }
      fclose(fo);//关闭文档
      fclose(fi);
      return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言