当前位置:首页 » 编程语言 » c语言将n进制转换为10进制
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言将n进制转换为10进制

发布时间: 2022-11-22 11:11:55

1. 用c语言将任意进制数转成十进制

任意进制间的转换
#include <stdio.h>
#include <string.h>
#include <math.h>
/*该函数可以实现小于整型数据的任意进制之间转换*/
/*以下函数将a进制数s转换成b进制并输出*/
void f(int a,int b,char s[])
{ char r[17];
int i,n,t,k;
for(n=strlen(s)-1,i=t=0;*(s+i)!='\0';i++,n--) /*这里先转换成十进制数*/
{ if(*(s+i)<='9')
t+=(*(s+i)-'0')*int(pow(a,n));
else
t+=(*(s+i)-'A'+10)*int(pow(a,n));
}
for(i=0;t!=0;i++) /*再转换成b进制*/
{ k=t%b;
if(k>9)r[i]='A'+k-10;
else r[i]='0'+k;
t/=b;
}
r[i]='\0';
s=strrev(r);
printf("%s",s);
}

2. c++不用数组怎么将n进制转换成十进制

c++不用数组将n进制转换成十进制,可以采取,每次读取一个字符的方法,然后把这个字符转换为数值,再采用秦九韶算法,读完所有的字符,就可以转换为十进制数字了。

3. n进制转化为十进制的c语言程序

#include
#include"math.h"
int
trach(int
num,int
f1,int
f2)//num是你要转化的数,返回的是num从f1进制钻换到f2进制的结果
{
int
sum=0;
int
div=1;
int
rs=0;
while(num>0)
{
sum=sum+(num%10)*(int)pow(f1,div-1);
num=num/10;
div++;
}
div=1;
while(sum>0)
{
rs=rs+(sum%f2)*(int)pow(10,div-1);
sum=sum/f2;
div++;
}
return
rs;
}
void
main()
{
printf("%d\n",trach(50,10,2));//输出50由十进制转化为2进制的结果
}

4. n进制转化为10进制,怎样用C语言写

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
intmain(void)
{
longt1;
inti,n,t,t3;
chara[100];
printf("请输入待转换的数的进制: ");//输入要转换的数的进制
scanf("%d",&n);
getchar();
printf("请输入这个数: ");
gets(a); //将输入的n进制的数储存在数组a中
strupr(a);//将数组中的小写字母转化为大写字母
t3=strlen(a);//求出数组的长度
t1=0;

for(i=0;i<t3;i++)
{
if(a[i]-'0'>=n&&a[i]<'A'||a[i]-'A'+10>n)//判断输入的数据和进制数是否符合
{
printf("dataerror!! ");//错误
exit(0);
}
if(a[i]>='0'&&a[i]<='9')//判断是否为数字
t=a[i]-'0';//求出该数字赋值给t
elseif(n>=11&&(a[i]>='A'&&a[i]<='A'+n-10))//判断是否为字母
t=a[i]-'A'+10;//求出该字母所代表的十进制数
t1=t1*n+t;//求出最终转换成的10进制数

}
printf("转化为的10进制数为%ld ",t1);
return0;
}

5. c语言中,将n!进制转换成十进制。这个n!进制什么意思

c语言中表示数据除了可以用十进制,还可以用八进制、十六进制等。
应该是把八进制或十六进制数转换成十进制。

6. 如何用C语言将N进制数转化为十进制

这是我之前写的一个程序。2~16进制正整数,若是17进制或更高也可以,但怎么表示17,'g'还是其他字符呢?需要的话也可以修改。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int N2Str(int value,int N,char *str)
{
char temp[10],*Bits="0123456789abcdef";
int Len;
if(value<0||N<2||N>16||str==NULL) return 0;
if(value>=N)
{
if(!N2Str(value/N,N,str)) return 0;
}

Len=strlen(str);
str[Len]=Bits[value%N];
str[Len+1]='\0';
return 1;
}

int M2N(int M,char *MStr,int N,char *NStr)
{
int value=0,bit;
if(M<2||M>16||MStr==NULL||N<2||N>16||NStr==NULL) return 0;
while(*MStr)
{
value*=M;
if(*MStr>='0'&&*MStr<='9') bit=*MStr-'0';
else if(*MStr>='a'&&*MStr<='f') bit=*MStr-'a'+10;
else if(*MStr>='A'&&*MStr<='F') bit=*MStr-'A'+10;
if(bit>=M) return 0;
value+=bit;
MStr++;
}

*NStr='\0';
N2Str(value,N,NStr);
return 1;
}

int main(void)
{
char *in="123456";
char out[50];

if(M2N(16,in,10,out))
printf("%s->%s\n",in,out);
else
printf("illegal input data\n");

system("pause");
return 0;
}

7. C语言 n进制转换为十进制

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"math.h"
#define MAXSIZE 100
void main()
{
char *str,ch[1];
int len,s=0,n,x,length;
str=(char*)malloc(MAXSIZE*sizeof(char));
printf("enter n:");
scanf("%d\n",&n); //输入进制数
gets(str); //字符串
length=len=strlen(str);
for(int i=0;i<len;i++){
ch[0]=str[i];
if(ch[0]>='0'&&ch[0]<='9'){ //ch转换成数字x
x=atoi(ch);
}
else{
switch(ch[0]){
case 'a':{x=10;break;}
case 'b':{x=11;break;}
case 'c':{x=12;break;}
case 'd':{x=13;break;}
case 'e':{x=14;break;}
case 'f':{x=15;break;}
}
}
if(x>=n){printf("输入错误\n");exit(0);}
length--;
s=s+x*pow(n,length); //计算结果s

}
printf("s=%d\n",s);
}