帮我看看这个问题
输入一个32位的二进制数(无符号的),转换为一个十进制数,比如 1000~~0,可是出来的却是个负数!不知道为什么啊?#include<iostream.h>
double power(int n)
{
int i,a(1);
for(i=0;i<=n-1;i++)
a=a*2;
return a;
}
void main(void)
{
int i;double sum(0);
char ch;
cout<<"input the number"<<endl;
for(i=31;i>=0;i--)
{
cin>>ch;
if(ch=='1')
sum+=power(i);
}
cout<<"thr number is"<<sum<<endl;
}