分析:將二進制轉化爲十進制,就是將二進制數的每一位乘以該位的權然後求和
例如:
(00001110)2=0×(27)+0×(26)+0×(25)+0×(24)+1×(23)+ 1×(22)+ 1×(21)+ 0×(20)
所以輸入00001110.則應輸出14.
源程序:
#include<iostream>
using namespace std;
double power(double x,int n)
{
double val=1.0;
while(n--)
val*=x;
return val;
}
int main()
{
int value=0;
cout<<"Enter an 8 bit binary number:";
for(int i=7;i>=0;i--)
{
char ch;
cin>>ch;
if(ch=='1')
value+=static_cast<int>(power(2,i));
}
cout<<"Decimal value is "<<value<<endl;
return 0;
}