程序的有关问题 菜鸟 多谢
程序的问题 初学者 谢谢
//2进制转十进制
#include <iostream>
#include <cmath>
using namespace std;
void binToDec(int bonaryNumber,int&decimal,int &weight);
int main()
{
int decimalNum;
int bitWeight;
int binaryNum;
decimalNum=0;
bitWeight=0;
cout < < "Enter number in binary: ";
cin> > binaryNum;
cout < <endl;
binToDec(binaryNum,decimalNum,bitWeight);
cout < < "Binary " < <binaryNum < < "= " < <decimalNum
< < "decimal " < <endl;
return 0;
}
void binToDec(int binaryNumber,int &decimal,int&weight)
{
int bit;
if (binaryNumber> 0)
{
bit=binaryNumber%10;
decimal=decimal+bit*static_cast <int> (pow(2,weight));
binaryNumber=binaryNumber/10;
weight++;
binToDec(binaryNumber,decimal,weight);
}
}
------解决方案--------------------
decimal=decimal+bit*static_cast <int> (pow((double)2,weight));
把2强制转换成double或者float都行
//2进制转十进制
#include <iostream>
#include <cmath>
using namespace std;
void binToDec(int bonaryNumber,int&decimal,int &weight);
int main()
{
int decimalNum;
int bitWeight;
int binaryNum;
decimalNum=0;
bitWeight=0;
cout < < "Enter number in binary: ";
cin> > binaryNum;
cout < <endl;
binToDec(binaryNum,decimalNum,bitWeight);
cout < < "Binary " < <binaryNum < < "= " < <decimalNum
< < "decimal " < <endl;
return 0;
}
void binToDec(int binaryNumber,int &decimal,int&weight)
{
int bit;
if (binaryNumber> 0)
{
bit=binaryNumber%10;
decimal=decimal+bit*static_cast <int> (pow(2,weight));
binaryNumber=binaryNumber/10;
weight++;
binToDec(binaryNumber,decimal,weight);
}
}
------解决方案--------------------
decimal=decimal+bit*static_cast <int> (pow((double)2,weight));
把2强制转换成double或者float都行