#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)
  返回值:返回字符串保存的空间地址。
*/