소수점(float,double) 있는 십진수를 이진수로 변환

 

 

십진수가 소수점 이상일 경우에는 2로 나누어서 계산하고

십진수가 소수점 이하일 경우에는 2를 곱하여 계산하면 됩니다.

 

예를 들어, 0.625를 이진수로 변환한다면

0.625 에 2를 곱하면 1.25, 여기서 소수점 위의 수 즉, 1을 오른쪽으로 뺍니다…………1

0.25 에 2를 곱하면 0.5, 여기서 소수점 위의 수 즉, 0을 오른쪽으로 뺍니다…………0

0.5 에 2를 곱하면 1.0, 여기서 소수점 위의 수 즉, 1을 오른쪽으로 뺍니다…………1

0 이 나옵니다.

우측에 나열된 숫자를 위에서 아래로 읽어 주면 됩니다.

101 <- 이진수로 101 가 됩니다.

 

 

 

 

소수점 있는 십진수를 이진수로 출력하는 소스입니다.

 

 

#include "stdafx.h"

 

int _tmain(int argc, _TCHAR* argv[])

{

    double dValue = 0.625;

    printf("INPUT: %f\r\n", dValue);

 

    printf("OUTPUT:");

    while (0 != dValue)

    {

        dValue = dValue*2;

 

        printf("%d",(int)dValue);

        if(dValue >=1)

        {

            dValue = dValue -1;

        }

 

    }

    

    printf("%d\r\n",(int)dValue);

 

    return 0;

}

 

 

 

 

 

실행 결과

 

 

 

+ Recent posts