[c언어] 10진수를 2진수로 변환

|



10진수를 2진수로 변환하는 프로그램

// while 문을 이용한 2진법 변환

#include <stdio.h>
int main(void)
{
    long number, binary, sum=0, i=1;
    printf("10진수를 입력하고 Enter>");
    scanf("%ld", &number);
    printf("\n\n10진수 : %ld ", number);
    while(number>0)
    {
        binary=number%2;
        sum+=binary*i;
        number=number/2;
        i*=10;
    }
    printf("\n 2진수 : %ld\n", sum);
    return 0;
}

// 실행 결과




// for문을 이용한 2진법 변환

#include <stdio.h>
#include <math.h>
int main(void)
{
    int i;
    long number, binary;
    double bin_length, sum=0;
    printf("10진수를 입력하고 Enter>");
    scanf("%ld", &number);
    printf("\n\n10진수 : %ld ", number);
    bin_length=log(number)/log(2)+1;
    for(i=0; i<bin_length ; i++)
    {
        binary=number%2;
        sum+=binary*pow(10, i);
        number=number/2;
    }
    printf("\n 2진수 : %0.f\n", sum);
    return 0;
}

// 실행 결과




// 배열을 이용한 진법 변환

#include <stdio.h>
int main(void)
{
    int number, binary, count, i=0;
    int bin[100];
    printf("10진수를 입력하고 Enter>");
    scanf("%d", &number);
    printf("\n\n10진수 : %d ", number);
    while(number>0)
    {
        binary=number%2;
        bin[i]=binary;
        number=number/2;
        i+=1;
    }
    count=i-1;
    printf("\n 2진수 : ");
    for(i=count; i>=0; i--)
        printf("%d", bin[i]);
    printf("\n");
    return 0;
}

// 실행 결과




// 재귀적 호출을 이용한 진법 변환

#include <stdio.h>
void dectobin(int n);
int main(void)
{
    int number;
    printf("10진수를 입력하고 Enter>");
    scanf("%d", &number);
    printf("\n\n10진수 : %d ", number);
    printf("\n 2진수 : ");
    dectobin(number);
    printf("\n");
    return 0;
}
void dectobin(int n)
{
    if(n>1)
        dectobin(n/2);
    printf("%d", n%2);
}

// 실행 결과


  ::