【算法】十进制转换为二进制

目的:将十进制转换为二进制

思路:

首先我们手算的情况是通过求余数算出进制数,同样代码也是通过做除法和求余数的方式,除法是得出下一次的被除数,而求余数是得到进制数

代码:

#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;
}
posted @ 2024-07-09 11:01  Lnnau  阅读(121)  评论(0)    收藏  举报  来源