C语言,将一个八进制数转换为十进制数(含延伸)

设计思路,将八进制数用字符串的形式输入储存,然后按照每一位对应的8的指数级与该位相乘,再把每一位的结果相加,得到需要转换的十进制数。

#include<studio.h>
 void main(){
 	int i=0,n=0;
	 char a[20];//一般20就够用了
	 printf("请输入一个八进制数:\n");
 	gets(a);
 //运算部分
 	while(a[i]!='\0'){//此处判断不能为‘null,否则会判定错误
 		n=n*8+a[i]-'0';
 		i++;
 		}
 	printf("该八进制数转化为十进制数应为:%d\n",n);
 }

运行结果如下:
八进制数转化为10进制数

那如果是A进制数转换为10进制数呢?

同样的思路,我们在先前的代码上做一些简单的参数改动即可。大于10的数另作方法,因为设计字母与数的转化。

#include<studio.h>
 void main(){
 	  int i=0,n=0;
	  int b;
	  char a[20];//一般20就够用了
	  printf("请输入一个数:\n");
 	  gets(a);//不能先于字符串输入整型
	  printf("请确定输入的数为几进制数:(如:2,3,4……不大于10)");
  	  scanf("%d",&b);
 //运算部分
	 if(b<11||b!=0){
  		while(a[i]!='\0'){//此处判断不能为‘null,否则会判定错误
   		n=n*b+a[i]-'0';
   		i++;
  		 }
  		printf("该%d进制数转化为十进制数应为:%d\n",b,n);
 	 }	
 	 else {
 	 	printf("不符合规范”);
 	 	exit 0;
 	 }
 }

运行结果如图:
N(N<10)进制转换为10进制

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐