C++程序设计。如何把某一个k进制的数化为10进制数呢?

(1) 将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。
提示:用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w (2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value上,最后输出该value。
(2)如何把8进制数或16进制数化为10进制数。
(3)如何把某一个k进制的数化为10进制数呢?

#include <iostream>
#include <cmath>
#include <string>
using namespace std;

void main()
{
char a[80];
int i,p=1,m,n=0,k;
cout<<"请设定要转化的进制位数:"<<endl;
cin>>k;
cout<<"输入一个"<<k<<"进制数:"<<endl;
cin>>a;
m=strlen(a);
for(i=m-1;i>=0&&k!=16;i--)
{
n+=(a[i]-48)*p;
p*=k;
}
if(!n)
for(i=m-1;i>=0;i--)
{
if(a[i]<65) n+=(a[i]-48)*p;
if(a[i]>=65) n+=(a[i]-55)*p;
p*=k;
}
cout<<"相应的10进制数为:"<<n<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-25
#include <stdio.h>
#include <stdlib.h>
int main()
{
int base, val;
char str[100];
scanf("%s%d", str, &base);//输入数字及其进制
val = strtol(str, '\0', base);//将其他进制的数转化为10进制数
printf("十进制:%d\n", val);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网