众所周知,C中以八进制,十进制和十六进制都可以通过%d,%o和%x轻松实现,然而唯独没有提供二进制输出的快速方式。博主整理出两种简单的实现方式,供参考。
方法一:itoa函数
itoa函数将数值转换为字符串,通过规定转换进制实现。(还是用了C自带的代码块hh)
#include<stdio.h>
#include<stdlib.h>
//注意必须调用stdlib.h函数库
int main(void){
int a=1000;
char str[30];
itoa(a,str,2);//2即是代表转换为2进制
printf("%s",str);
return 0;
}
方法二:短除法
短除法,将十进制转换为二进制的笔算过程通过简单的代码实现。没走捷径哦。
#include<stdio.h>
int main(void){
int a,b,k,i;
int remainder[30];
//定义了一个remainder数组,用来收集短除法除得的余数,栈倒序输出。
a=1000;
k=0;
while(a!=0){
b=a/2;
k++;
remainder[k]=a-b*2;
a=a/2;
};
for (i=k;i>=1;i--){
printf("%d",remainder[i]);
}
return 0;
}