#include <iostream>
#include <math.h>
using namespace std;

void main()
{
 int a, i;
 int arr[1000];    //2의 1000승의 숫자까지 가능함.
 int binary;     //이진수 각 자리수의 십진수 변환값
 int binaryAll=0;   //이진수 각 자리수의 십진수 변환값을 모두 더한값
 cout<<"이진수를 입력하세요"<<endl;
 cin>>a;
 cout<<"입력된  2진수 값 : "<<a<<endl;

  for(i=1; i<1000 ; i++) //입력받은 수가 몇자리 수인지 인지하는 for문 (i값으로 최고 큰 자리수가 10의 몇승인지 확인)
  {
   a=a/10;
   if(a==1)
    break;
  }
//  cout<<i<<endl; //10^i = 최고로 큰 자리수

  for(i; i==0 ; i--)
  {
   int b;
   b = (int)(a/pow((double)10,i));   // 각 자리수의 값 b는 1또는 0이나옴
   binary = b * (int)(pow((double)2,i));
   arr[i] = binary;
  }
  for(i; i<1000 ; i++)
  {
   binaryAll += arr[i];
  }
  cout<<"출력된 10진수 값 : "<<binaryAll<<endl;

}


 


 

이거 만들었는데 처음 for문에서 i가 몇번 나눴는지 알려주는 (자리수를 확인하는)수자나

근데 문제는 맨마지막 for문에서

for(i ; i<1000 ; i++) 여기서 1000대신에 그 몇번을 나눴는지를 써줘야되거든...

저대로 하니까 arr[1000]까지 다더해서 쓰레기값까지 더해져서 나와서 ㅠㅠㅠ

횽들 어떻게 하면 좋을까? 도와줘 ㅠㅠ