【点我看视频讲解】C程序设计谭浩强第五版课后习题视频讲解

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

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

题目解析:

转换的过程需要乘的基数为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;
}

运行结果:

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

posted @ 2020-07-22 18:33  北邮杨帆  阅读(564)  评论(0编辑  收藏  举报
【视频讲解】【强烈推荐视频讲解】C程序设计谭浩强第五版课后习题视频讲解