C语言--十进制转二进制

2021-03-19  本文已影响0人  Axiazy

算法思路:

image.png
十进制转二进制的主要思路就是除2取余
#include <stdio.h>
long long convertDecimalToBinary(int n){
    long long binarynumber;
    int remainder;//余数 
    int weight=1;//权位 
    while(n!=0){
        remainder = n%2;
        n/=2;
        binarynumber+=remainder*weight; //以二进制显示原来的十进制就是按位相加 
        weight*=10; //个位、十位、百位 以次递进 
    }
    return binarynumber;
}

int main(void){
    int  n;
    scanf("%d",&n);
    printf("->十进制%d转二进制 %11d",n,convertDecimalToBinary(n));
    return n;
} 

写法二:

#include <stdio.h>
int main(){
    int b[32] = {0},x,k,r,i;
    printf("输入十进制数:\n");
    scanf("%d",&x);
    printf("\n");
    k=-1;
    do{
        r=x%2;
        b[++k] =r;
        x/=2;
    }
    while(x>0);
    printf("转换后的二进制:\n");
    for(i=k;i>=0;i--){
        printf("%d",b[i]);
    }
    printf("\n");
    return 0;
} 
上一篇下一篇

猜你喜欢

热点阅读