본문 바로가기
WORK/Sotfware

입력된 2진수를 10진수로 계산하여 출력

by KANG Stroy 2008. 6. 8.
728x90
728x90

입력된 2진수를 10진수로 계산하여 출력 (소수)
 
입력된 문자열을 10진수로 바꾸어 출력합니다.
문자열중 0 또는 1 이 아닌 다른 문자가 들어오면 그 자리수 부터 무효 합니다.

#include <stdio.h>

main()
{
    char strB[80]={0,};
    long lResult=0,i=0;

    printf("Input a binary data\n");
    scanf("%s",strB);

    while(strB[i]=='1' || strB[i]=='0')
    {
        lResult<<=1;
        lResult+=(strB[i]-'0');
        i++;
    }
    printf("%d\n",lResult);
}


  Input a binary data
  111010110111100111001101010110111100001110101011
  258908368913323



음 소수점까지 되는 소스입니다.
문자 '.' 부터는 소수점으로 계산하여 처리합니다.

#include <stdio.h>

main()
{
    char strB[80]={0,};
    double dResult=0,dTemp=1;
    int i=0,toggle=1;

    printf("Input a binary data\n");
    scanf("%s",strB);

    while(strB[i]=='1' || strB[i]=='0' || strB[i]=='.')
    {
        if (strB[i]=='.')
            toggle=0;
        else
        {
            if (toggle)
            {
                dResult*=2;
                dResult+=(strB[i]-'0');
            }
            else
            {
                dTemp/=2;
                dResult+=((strB[i]-'0')*(dTemp));
            }
        }
        i++;
    }
    printf("%lf\n",dResult);
}


  Input a binary data
  1101.101011
  13.671875

728x90

'WORK > Sotfware' 카테고리의 다른 글

MS->Borland로 변경  (0) 2008.06.09
implib / VC lib를 BCB lib로 변경  (0) 2008.06.09
#pragma comment ..........?  (0) 2008.06.08
[통신]시리얼 통신 프로그램 관련..  (0) 2008.06.08
클래스/Class  (0) 2008.06.03

댓글