December 01, 2008
/*This prog supposed to convert from binary number system to decimal but
something is not
working properly please help*/

#include <iostream>
using namespace std;



int main()
{
	int a[8],sum=0;
	cout << endl;
	cout << "Input Binary number(with spaces between digits): ";
	for(int i=0;i<=7;i++)
	{

	   cin >> a[i];

	   if((a[i]!=1)&&(a[i]!=0))//Strange indeed!!! I tried || but my message
showed up.
	   {
	   cout << "You entered wrong digit!!!" << endl;
	   i--;
       }

   }



   for(int i=7;i>-0;i++) // I also tried for(int i=7;i>=0;i--) but get same
results
   {                    // results of 000000001 is 128 and of 10000000 is 1?!
	   if(a[i])
       {
	      switch(i)  // ofcourse I can just change cases but it is not the way
"for" must work...
	      {
		      case 0:
		      sum+=1;
		      break;
		      case 1:
		      sum += 2;
		      break;
		      case 2:
		      sum += 4;
		      break;
		      case 3:
		      sum += 8;
		      break;
		      case 4:
		      sum += 16;
		      break;
		      case 5:
		      sum += 32;
	          break;
	          case 6:
	          sum += 64;
	          break;
	          case 7:
	          sum += 128;
	          break;

	         default: cout << "This shall not happen!" << endl;
         }
        }
	 }

	 cout << sum;
}
December 01, 2008
/*This prog supposed to convert from binary number system to decimal but something
is not
working properly please help*/

#include <iostream>
using namespace std;



int main()
{
	int a[8],sum=0;
	cout << endl;
	cout << "Input Binary number(with spaces between digits): ";
	for(int i=0;i<=7;i++)
	{

	   cin >> a[i];

	   if((a[i]!=1)&&(a[i]!=0))//Strange indeed!!! I tried || but my message showed up.
	   {
	   cout << "You entered wrong digit!!!" << endl;
	   i--;
       }

   }



   for(int i=0;i<8;i++) // I also tried for(int i=7;i>=0;i--) but get same results
   {                    // results of 000000001 is 128 and of 10000000 is 1?!
	   if(a[i])
       {
	      switch(i)  // ofcourse I can just change cases but it is not the way "for"
must work...
	      {
		      case 0:
		      sum+=128;
		      break;
		      case 1:
		      sum += 64;
		      break;
		      case 2:
		      sum += 32;
		      break;
		      case 3:
		      sum += 16;
		      break;
		      case 4:
		      sum += 8;
		      break;
		      case 5:
		      sum += 4;
	          break;
	          case 6:
	          sum += 2;
	          break;
	          case 7:
	          sum += 1;
	          break;

	         default: cout << "This shall not happen!" << endl;
         }
        }
	 }

	 cout << sum;
}