码迷,mamicode.com
首页 > 其他好文 > 详细

写一个函数,输人一个十六进制数,输出相应的十进制数

时间:2020-07-22 20:38:26      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:mamicode   过程   lazy   std   代码   大小写   scan   alt   res   

写一个函数,输人一个十六进制数,输出相应的十进制数

题目解析:

转换的过程需要乘的基数为16,其次注意十六进制中的a~f的字母转换,并且无论大小写都要能够转换。

代码示例:

#include<stdio.h>

size_t HextoDec(char s[])
{
	size_t i, n;
	n = 0;
	for (i = 0; s[i] != ‘\0‘; i++)
	{
		if (s[i] >= ‘0‘&& s[i] <= ‘9‘)
			n = n * 16 + s[i] - ‘0‘;
		if (s[i] >= ‘a‘ && s[i] <= ‘f‘)
			n = n * 16 + s[i] - ‘a‘ + 10;
		if (s[i] >= ‘A‘ && s[i] <= ‘F‘)
			n = n * 16 + s[i] - ‘A‘ + 10;
	}
	return n;
}

int main()
{
	size_t result = 0;
	char hex[9] = {0}; 
	printf("input a HEX number:");
	scanf("%s", hex);

	result = HextoDec(hex);
	printf("0x%s = %u\n", hex, result);
	
	return 0;
}

运行结果:

技术图片

写一个函数,输人一个十六进制数,输出相应的十进制数

标签:mamicode   过程   lazy   std   代码   大小写   scan   alt   res   

原文地址:https://www.cnblogs.com/inta/p/13362520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!