目的:将十进制转换为二进制
思路:
首先我们手算的情况是通过求余数算出进制数,同样代码也是通过做除法和求余数的方式,除法是得出下一次的被除数,而求余数是得到进制数
代码:
#include<stdio.h>
// 十进制转换为二进制,通过除法求余数
void getTwo(int n) {
// res数组存放结果,div是要转换进制的数,mod是余数,flag是标记存放到数组的位置
int res[30]={0};
int div = n;
int mod = 0;
int flag;
for (flag=0; div!=0; flag++) {
// 如果要是十进制转换为八进制只需要修改下面的2为8即可,但是16进制需要重新写
mod = div % 2;
div = div / 2;
res[flag] = mod;
// res = res * 10 + mod;
}
// 逆序输出二进制数
for (int i=flag-1; i>=0; i--) {
printf("%d",res[i]);
}
}
int main() {
int n;
scanf("%d",&n);
getTwo(n);
return 0;
}