蓝桥杯:C语言,十六进制转十进制

我的思路:首先将十六进制数的每一位转化为十进制,然后乘以十六的相应次方.

我写的代码:

#include<stdio.h>
#include<string.h>
#define N 8

//将十六进制数的每一位转换为十进制数
int sixteenTrans(char str){
		if(str >= '0'&&str <= '9'){
			return str - 48;	
		}else{
			return str - 55;
		}
			
}

//十六进制转十进制 
void sixteen2ten(int num[],int length)
{
	int i,j,sum=0;
	int n = 0;
	for(i = 0;i < length; i++){
		for(j = length - i - 1; j > 0;j--)
		{
			num[i] = num[i]*16;	
		}		
		sum += num[i];
	}		
		printf("%d",sum);

}


	int num[100];
int main(){
	char str[N];
	int i; 
	scanf("%s",str);
	int length = strlen(str);    //记录输入字符串的长度
	
    //将sixteenTrans转化出的十进制数存入数组
    for(i = 0;i < length; i++){
		num[i] = sixteenTrans(str[i]);
	}
	sixteen2ten(num,l
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值