C++进制转换问题
输入一个二进制数,将其转换为十进制数输出。
1.确定要转换的二进制数位数,以字符串形式输入,申请动态数组;
2.循环累加,利用多项式函数值秦九韶法。
改变x的值可转换为不同进制。
#include<iostream>
#include<math.h>
#include<string.h>
#include<iomanip>
using namespace std;
int main()
{
int n, x = 2, decNum, i, a;
cout << "请输入要转化的进制数位数:";
cin >> n;
char* p = new char[n + 1];
//判断申请空间是否成功
if (p == 0)
{
cout << "Error!" << endl;
return -1;
}
cout << "输入转换的二进制数:";
cin >> p;
decNum = 0;
for (i = 0; i < n; i++)
{
a = p[i] - '0';//把字符型的转化为数字型的
decNum = decNum * x + a;
}
cout << "二进制序列(" << p << ")的值为:" << decNum << endl;
}