蓝桥杯基础练习BASIC-11 十六进制转十进制

(C语言实现)IDE:dev c++

#include <stdio.h>
#include <math.h>
#include <string.h>

int main()
{
	char HexNumber[20] = {0};    //此数组用于存储读入的十六进制数 
	scanf("%s",&HexNumber);
	int i,DigitalLength;
	DigitalLength = strlen(HexNumber);  //计算读入字符串长度 
	long long DecNumber=0;					//用于存放转换后的十进制数 
	for(i = 0 ;i < DigitalLength;i++)
	{
		if(HexNumber[i] >= '0' && HexNumber[i] <= '9')			//若数位上的字符是0-9之间的数 
			DecNumber += (HexNumber[i] - '0')*pow(16 ,DigitalLength - 1 - i);   //则直接让该数字乘以16的 次 方 
		else
			DecNumber += (HexNumber[i] - 'A' + 10)*pow(16 ,DigitalLength - 1 - i);	//若数位上为ABCDEF,则利用 ASCII码换 算成 十 进 制 再乘 以16的 次方                          
	}
	
	printf("%lld\n",DecNumber);
	
	return 0;
 } 

如果这段代码对您有帮助,希望您可以给猿猿一个赞,谢谢您嘞,code不易,且看且珍惜。


版权声明:本文为weixin_45437022原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。