这个程序帮我改下,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:07:31
#include<iostream.h>
#include<math.h>
void main()
{
int a,b,c,d=0;
cin>>a;
for(b=0;b<=7;b++ )
{
c=a%10;
d=d+c*(int)pow(2,b);
a=a/10;
}
cout<<d;
}
/*输入1个8位的二进制数,输出它的十进制数*/
我输入10结果是2;但我输入00000010结果是8。
为什么这样? 请帮我解答。
谢谢。

不明白你这程序是怎么回事,下面是c++的程序,跟你那功能一样
#include<iostream>

using namespace std;

int main(){
int a,k,b; /*如果你二进制数当作整数输入的话,int是不够的应该用long类型 */
cin >> a;
k=1;b=0;
while (a>0){
b=b+(a%10)*k;
k=k*2;
a=a/10;
}
cout << b;
}
-------------------------
c我没用过,试着改一下
#include<iostream.h>

void main(){
int a,k,b;
cin >> a;
k=1;b=0;
while (a>0){
b=b+(a%10)*k;
k=k*2;
a=a/10;
}
cout << b;
}