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

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进制

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值