c语言,将十进制转化为二进制

Python013

c语言,将十进制转化为二进制,第1张

十进制转二进制可以使用库函数itoa。

itoa函数原型:char*itoa(int value,char*string,int radix)

功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。

nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。

参考代码:

#include <stdio.h>

#include<stdlib.h>

int main()

int i=10

char a[100]

itoa(i,a,2)

printf("%s\n",a)

return 0 

}

/*

1010

*/

第一:math.h头文件在这没用上,可删。

第二:tol从二进制高位开始累加,先加的是最左边的数,所以每次加完以后,所有二进制数都要要左移一位。

第三:tol+的是二进制数0或者1,而st字符串中每一位都是字符'0'或者'1',所以需要*st-'0'来把字符转换成数字。*st++为里循环取出每一个字符,++在后是先取值再加加.

所以*st++-'0'就相当于*st-'0'st++这两句。

另外,你贴的代码二进制转十进制,不是十转二进制。

首先需要明确十进制转为二进制的算法:将所需转化的数除以2,所得余数为k1,将所得商再除以2,所得余数为k2…...重复步骤直到商为0;读数时从最后一个余数读起,即kn,k(n-1)…k2,k1;所得数便是转化成的二进制数(除二取余法)