C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64179] Re:소수점 이하 2진수를 10진수를 변환하는데 있어, float형에 1이 안더해집니다.ㅠㅠ
궁금합니다 [] 1895 읽음    2011-04-18 11:46
else if(cc<1)
에서 else if(cc<1.0) 으로 해보심이 어떨듯....

cc가 묵시적으로 int형으로 타입 캐스팅 되어 일어 나는 일인듯....



궁금해요cc 님이 쓰신 글 :
: void BtoD() // 소수점 이하 2진수를 10진수로 바꾸는 작업
: {
:  int   c=0, d=1, sum=0;
:  float cc, binary;
:
:  cout << "2 진수를 입력해주세요 : ";
:  cin >> binary;
:  cout << "입력받은 2 진수 ";
:  cout << binary;
:  cout << "의 10 진수로 변환된 값은 : ";
:
:

: for(cc=binary ; cc>0 ;  cc=cc-1 )
:  {
:
:  cout << " 10곱하기 전의 cc 값은 "  << cc << endl;
:  cc = cc * 10;
:  cout << " 10곱하기 후의 cc 값은 "  << cc << endl;
:
:  if(cc>=1)
:    c=1;
:  else if(cc<1)
:    c=0, cc=cc+1;
:
:   sum += c*d;
:  d*=2;
:

:
:  }
:
:  cout << sum ;
:  cout << " 이다";
:  cout << endl;
:  cout << endl;
:  cout << endl;
:  cout << endl;
: }
:

:

:

:
: 여기서,
:
:  else if(cc<1)
:    c=0, cc=cc+1 부분에서
:
: cc가 0.01이 되어 1보다 작으니 1을 더해주라는 명령어인데...
:

:
: 1이 안더해지는것 같습니다.
:
: 왜 그런지 도저히 해석이 안됩니다.
:

:
: 위의 소스는 0.101과 같은 소수점 이하의 수에 대한 진수 변환인데...
:
: 10진수를 2진수로 변하는것은 맘껏 되는데,
:
: 2진수를 10진수로 변하는 것은 맘처럼 쉽게 안되네요ㅠㅠ
:

:
: 다들 오늘 하루도 좋은 하루 보내시고, 부디, 너무나 쉬운 부분이라고 지나쳐 가지 말아주시고
:
: 답변 좀 부탁드립니다. 꾸벅

+ -

관련 글 리스트
64178 소수점 이하 2진수를 10진수를 변환하는데 있어, float형에 1이 안더해집니다.ㅠㅠ 궁금해요cc 1901 2011/04/18
64179     Re:소수점 이하 2진수를 10진수를 변환하는데 있어, float형에 1이 안더해집니다.ㅠㅠ 궁금합니다 1895 2011/04/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.