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

#include <stdio.h>

 

unsigned int get_decimal (char binary[]);

int check_binary(char binary[]);

 

int main(void)

{

    char binary[33] = {0,}; //๋ฐฐ์—ด์˜์ดˆ๊ธฐํ™”. 32๋น„ํŠธ์˜2์ง„์ˆ˜์—๋ฌธ์ž์—ด๋ฐฐ์—ด์ด๋ฏ€๋กœ๋งˆ์ง€๋ง‰์—๊ณต๋ฐฑ์„์œ„ํ•œ1์นธ์ถ”๊ฐ€

    unsigned int result;

    int check;

 

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

    printf("32์ž๋ฆฌ์˜2์ง„์ˆ˜๊นŒ์ง€๊ณ„์‚ฐ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.\n");

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

 

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

    scanf("%s", binary);

 

    while(binary[0] != '0'){

 

        check = check_binary(binary);

 

        if (check == 1)

        {

            result = get_decimal(binary);

 

            printf("\n%s๋ฅผ10์ง„์ˆ˜๋กœ๋ณ€ํ™˜ํ•˜๋ฉด%u ์ž…๋‹ˆ๋‹ค.\n", binary, result);

            printf("-------------------------------------\n");

 

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

        }

        scanf("%s", binary);

    }

 

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

    return 0;

}

 

 

 

 

unsigned int get_decimal(char binary[]){

    int i;

    unsigned int sum = 0;

 

    for(i=0; binary[i] != 0; i++)   //์‚ฌ์šฉ์ž๊ฐ€'0', '1' ์ž…๋ ฅ์„๋งˆ์นœ์ง€์ ๊นŒ์ง€

    {

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

            sum = sum*2 + 1;

        else    // binary[i] == '0'

            sum = sum*2 + 0;

    }

 

    return sum;

}

 

int check_binary(char binary[]) // ์‚ฌ์šฉ์ž๊ฐ€์ž…๋ ฅํ•œ์ˆ˜์ค‘์—์„œ0,1 ์ด์™ธ์˜๊ฐ’์ด์žˆ์œผ๋ฉด0 ๋ฐ˜ํ™˜, ๋ฌธ์ œ์—†์œผ๋ฉด1๋ฐ˜ํ™˜

{

    int i;

 

    for(i=0; binary[i] != 0; i++){

        if(binary[i] == '0' || binary[i] == '1')

            ;

        else

        {

            printf("0,1 ์ด์™ธ์˜์ˆซ์ž๊ฐ€์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ์ž…๋ ฅํ•˜์„ธ์š”: ");

            return 0;

        }

 

    }

 

    return 1;

}

 

๋Œ“๊ธ€