|
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진수로 변하는 것은 맘처럼 쉽게 안되네요ㅠㅠ
다들 오늘 하루도 좋은 하루 보내시고, 부디, 너무나 쉬운 부분이라고 지나쳐 가지 말아주시고
답변 좀 부탁드립니다. 꾸벅
|