永发信息网

将某R进制数转换成十进制的方法是 法。

答案:2  悬赏:0  手机版
解决时间 2021-02-03 07:37
  • 提问者网友:感性作祟
  • 2021-02-02 21:57
将某R进制数转换成十进制的方法是 法。
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-02-02 23:11
#include
//获取字符串长度
int getLength(char a[])
{
int count=0;
while (a[count]) {
count++;
}
return count;
}
//反转字符串
void reverse(char a[])
{
char temp;
int length=getLength(a), i=0;

while (i temp=a[i];
a[i]=a[length-i-1];
a[length-i-1]=temp;
i++;
}
}
//base的count次方
int intPow(int base,int count)
{
int index=0,result=1;
while (index result=result*base;
index++;
}
return result;
}
//以base进制将数字转化为字符串,
//如10对应十进制{'1','0'}对应8进制{'1','2'}
void convertIntToChars(int a,int base,char result[])
{
int quotient=a,index=0;
while (quotient) {
result[index]=quotient%base+'0';
quotient=quotient/base;
index++;
}
result[index]=0;
reverse(result);
}
//将字符串以base进制转换为10进制
int atoi(char a[],int base)
{
int length=getLength(a),sum=0,index=0;
while(index {
sum+=(a[index]-'0')*intPow(base,length-1-index);
index++;
}
return sum;
}
//十进制转八进制,并以十进制形式表示,如8(十进制)对应10(八进制)
int decimalToOctal(int a)
{
char result[100];
convertIntToChars(a,8,result);
returnatoi(result,10);
}
//八进制转十进制,并以十进制形式表示
int octalToDecimal(int a)
{
char result[100];
convertIntToChars(a,10,result);
returnatoi(result,8);
}
//N进制转十进制
int NToDecimal(int a,int n)
{
char result[100];
convertIntToChars(a,10,result);
returnatoi(result,n);
}
int main(int argc, constchar * argv[])
{
int decimal=10;
printf("decimal %d's octal number is %d\n",decimal,decimalToOctal(decimal));
int octal=10;
printf("ocatal %d's decimal number is %d\n",octal,octalToDecimal(octal));

int n=3;
int number3=222;
printf("%d base %d's decimal number is %d\n",n,number3,NToDecimal(number3,n));

return0;
}
全部回答
  • 1楼网友:神鬼未生
  • 2021-02-03 00:45
设你所求的R进制数为(a3a2a1a0.a-1a-2)=a3*R3+a2*R2+a1*R1+a0+a-1*R-1+a-2*R-2
其中数据或为下标,或为上标。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯