for循环实现将十进制数转换为二进制数
//迭代实现输出二进制数
//先使用数组存储,然后方向输出
#include <stdio.h>
int main(void){
int n,sum=0,r;
scanf("%d",&n);
int a[100];
int k,i,flag=1;
for(n;n>0;n/=2){
flag=0;
r=n%2;
a[i++]=r;
}
if(flag) printf("0\n"); //特殊处理当n=0的时候
else{
for(i-=1;i>=0;i--){
printf("%d",a[i]);
}
}
return 0;
}
递归实现转换:需要注意的是,递归终止的条件的if,而不是while!!!
//递归实现输出二进制数
#include <stdio.h>
void func(int n){
int r;
r=n%2;
n/=2;
if(n>0){
func(n);
}
printf("%d",r);
}
int main(void){
int n;
scanf("%d",&n);
func(n);
return 0;
}
使用itoa函数转化,itoa函数在stdlib.h 函数库中
#include <stdio.h>
#include <stdlib.h>
void func(const int number){
char string[64];
itoa(number,string,2);
printf("%d->%s\n",number,string);
}
int main(void){
int num=10;
func('a');
return 0;
}