當前位置:首頁 » 編程語言 » 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);
}