소수점(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("\r\n",(int)dValue);
return 0; } |
실행 결과
- [2015/04/22] 시리얼통신 소스 코드입니다. 0.2 (9755) *2
- [2015/03/13] 시리얼통신 소스 코드입니다. 0.1 (7719)
- [2013/12/30] C++, C# 간단한 기능 비교 (5289)
- [2011/10/27] WAT-AVR128 모듈 (4870)
- [2013/06/20] 5명의 키를 읽어 들여 가장 큰 키와 작은 키를 구하는 프로그램을 작성하시오 (11859) *1
- [2013/06/20] 배열 문제인데요 ㅠㅠ (10690) *1
- [2013/05/30] WAT-AVR128, OUTPUT 실험 (5876)
- [2013/05/29] 도구바, OrCAD Capture (3842)
- [2013/05/10] C언어 문제좀 풀어주세요~ (7404) *1
- [2013/04/25] AVR ATmega 128로 인터럽트를 이용한 LED를 점멸하는 방법 좀 알려주세요. (9877) *3