안녕하세요.
이진법을 십진법으로 변환하는 문젠데요.
이진법 11을 입력하면 3이 나오는데 이진법 100을 입력하면 3이 나오고 이진법 101을 입력하면 4가 나오는데 while문에서 binary가 1이 되면 몫이 0이 되서 반복문을 탈출하게 되는데 이 상황에서 while문에 어떠한 것을 넣으면 값이 올바른 것이 나올까요.
답변 부탁드립니다.
휴, 이제 됐습니다.
#include
using std::cout;
using std::cin;
using std::endl;
int main()
{
int binary, decimal; //이진수
int addMultiplication;
cout<<" 2진수 입력 : ";
cin>>binary; //반드시 0과 1로 입력하여야 한다.
decimal=0; //binary(이진법)을 decimal(십진법)으로
addMultiplication=1;
while(binary)
{
if(binary%2)
decimal+=addMultiplication;
binary/=10; //binary가 0이 되는 순간에 반복문을 탈출한다.
addMultiplication*=2;
}
cout<<"10진법 출력 : "<
return 0;
}