C语言:其他进制转换为十进制(方法二)

#include<stdio.h>

#include<math.h>

#include<string.h>

#include<ctype.h>

//其他任意进制转换为十进制

int main()

{

 int trans(char a[],int );

 char arr[100];

 int t;

 printf("请输入进制的类型:");

 scanf("%d",&t);

 printf("请输入该进制的数:");

 scanf("%s",arr);

 int num = trans(arr,t);

 printf("该数的十进制是:%d\n",num);

 return 0;

}

int trans(char chs[],int m)//转换为十进制

{

 char *p = chs;

 int len = strlen(p);

 int temp,sum=0;

 while(len>0)

 {  

  char ss = toupper(*p);//直接调用库文件<ctype.h>的toupper()函数

  if(ss>='0' && ss<='9')

  {

    temp = (ss-'0')*pow(m,len-1);//m表示进制类型(2、8、16)

    sum = sum + temp;

  }

  if(ss>='A' && ss<='F')

  {

    temp = (ss-'A'+10)*pow(m,len-1);

    sum = sum + temp;

  }

  p++;

  len--;

 }

 printf("\n");

 return sum;

}

 

转载于:https://www.cnblogs.com/XYQ-208910/p/4695370.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值