소수점(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: %frn”, dValue);
printf(“OUTPUT:”);
while (0 != dValue)
{
dValue = dValue*2;
printf(“%d”,(int)dValue);
if(dValue >=1)
{
dValue = dValue -1;
}
}
printf(“%drn”,(int)dValue);
return 0;
}
실행 결과