#include "stdio.h"
#include "stdlib.h"
#include "string.h"
/*
1~15的十进制转化为二进制,结果保存到文件中
十进制 二进制
1 1
2 10
3 11
4 100
……
1.如何实现十进制转二进制
二进制数据保存到哪里? -- 数组 char bin[32];
2.给文件进行数据保存
2.1 打开文件 -- 文件名 "w"
2.2 写数据 -- 写到文件中以字符形式 -- fprintf
2.3 关闭文件 -- fclose
*/
int my_itoa(int value,char *str);
int main()
{
int flag=0;//是否找到1
char bin[32]={0};
int len = 0;
FILE *fp = fopen("bin.csv","w");
fprintf(fp,"十进制,二进制\n");
for(int j=1;j<=15;j++){
fprintf(fp,"%d,",j);//写入十进制数
memset(bin,0,32);
len = my_itoa(j,bin);//转化为二进制
for(int i=len;i>=0;i--){
printf("%d",bin[i]);
fprintf(fp,"%1d",bin[i]);
}
printf("\n");
fprintf(fp,"\n");
}
}
/*
整型数转换为二进制
参数1:value -- 十进制数
参数2:str -- 保存二进制的数组
返回值:成功 -- 位数
失败 -- 0
*/
int my_itoa(int value,char *str)
{
int count = 0;
while(value != 1){
str[count]=value%2;
value /= 2;
count++;
}
str[count]=1;
return count;
}
/*
char *itoa(int value, char *string, int radix);
函数功能:将整型数(value)转化为字符串。
参数:value:整型数
string:转化后字符串保存的空间地址
radix:以那种进制形式转换成字符串(即进制,如二进制,十六进制 2 8 10 16)
返回值:返回字符串保存的空间地址。
*/