소수점(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; } |
실행 결과
'스터디 > C, C++ 언어' 카테고리의 다른 글
난수 발생 srand() rand() (2) | 2011.11.09 |
---|---|
MFC, WAVE(.WAV) 파일 재생 (0) | 2011.06.03 |
C++, 간단한 덧셈 연산 (0) | 2011.05.24 |
VC++ 6.0 설치 (0) | 2011.05.24 |
scanf 로 수를 입력 받은 후 정렬하기 (0) | 2011.05.08 |
문자열로 다이아몬드 모양 만들기 소스 (0) | 2011.05.07 |
C++, scanf 에서 float 사용하기 (0) | 2011.03.23 |