ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

#include <stdio.h>

#include <limits.h>

#define SIZE 32         //์ตœ๋Œ€32๋น„ํŠธ

 

void get_binary (unsigned int n, char arr);

void print_binary (char arr);

 

int main(void)

{

    unsigned int n=1;

    char result[SIZE];

 

    printf("10์ง„์ˆ˜โ†’2์ง„์ˆ˜๋ณ€ํ™˜ํ”„๋กœ๊ทธ๋žจ\n");

    printf("์ž…๋ ฅ๊ฐ€๋Šฅํ•œ์ตœ๋Œ€๊ฐ’: %u\n", UINT_MAX);

    printf("( 0 ์„์ž…๋ ฅํ•˜๋ฉดํ”„๋กœ๊ทธ๋žจ์ด์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. )\n\n");

 

    printf("์ˆซ์ž๋ฅผ์ž…๋ ฅํ•˜์„ธ์š”: ");

    scanf("%u", &n);

 

    while(n != 0){

        get_binary(n, result);

 

        printf("\n%u๋ฅผ2์ง„์ˆ˜๋กœ๋ณ€ํ™˜ํ•˜๋ฉด", n);

        print_binary(result);

        printf("์ž…๋‹ˆ๋‹ค.\n-------------------------------------\n");

 

        printf("์ˆซ์ž๋ฅผ์ž…๋ ฅํ•˜์„ธ์š”: ");

        scanf("%u", &n);

    }

 

    printf("ํ”„๋กœ๊ทธ๋žจ์„์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.\n");

    return 0;

}

 

 

 

 

 

 

void get_binary(unsigned int n, char arr[])

{

    int i;

    int remainder;

 

    for(i=SIZE-1; i>=0; i--)

    {

        remainder = n % 2;

        if(remainder == 1)

            arr[i] = '1';

        else

            arr[i] = '0';

 

        n=n/2;

    }

}

 

void print_binary (char arr[])

{

    int i, count = 0;

 

    for(i=0; i<SIZE; i++)

    {

        if(arr[i] == '0' )

            count++;

 

        if(arr[i] == '1' )

            break;

    }

 

    for(i=count; i<SIZE; i++)

    {

        if(i%4==0)

            printf(" ");

        printf("%c", arr[i]);

    }

}

 

 

 

๋Œ“๊ธ€