二进制到十进制
//迭代法将二进制数转化为十进制数
#include<iostream>
#include<cmath>
using namespace std;
void binToDec(int binaryNumber, int& decimal, int& weight);
int main()
{
int decimalNum;
int bitWeight;
int binaryNum;
decimalNum = 0;
bitWeight = 0;
cout << "Enter a 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);
}
}
十进制转二进制
//迭代法将十进制数转化为二进制数
#include<iostream>
using namespace std;
void decToBin(int num, int base);
int main()
{
int decimalNum;
int base;
base=2;
cout << "Enter a number in decimal: ";
cin >> decimalNum;
cout << endl;
cout << "Decimal " << decimalNum << " = ";
decToBin(decimalNum, base);
cout << " binary" << endl;
return 0;
}
void decToBin(int num, int base)
{
if (num > 0)
{
decToBin(num / base, base);
cout << num%base;
}
}