700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 题7.16:写一个函数 输人一个十六进制数 输出相应的十进制数。

题7.16:写一个函数 输人一个十六进制数 输出相应的十进制数。

时间:2019-06-24 18:42:41

相关推荐

题7.16:写一个函数 输人一个十六进制数 输出相应的十进制数。

题目

本题是谭浩强《C程序设计课后习题》题7.16。

题目:

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


以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj

一、解题思路

思路:

根据十六进制转10进制的规律进行转换:

1,每进一位需要乘以16

2,是大写字母时,需要将大写字母-字符A再+10

3,是小写字母时,需要将小写字母-字符a再+10

4,是0-9之间的数时,因为原来的数据是字符型,我们需要将其减去一个字符型的0才能变成整形参与运算。

二、代码部分

1.引入库

代码如下(示例):

#include<stdio.h>

2.主函数部分

代码如下(示例):

int Transpose(char str[]){int i = 0;int n=0;while (str[i]){if (str[i] >= 'A' && str[i] <= 'Z')n = n * 16 + str[i] - 'A' + 10;if (str[i] >= 'a' && str[i] <= 'z')n = n * 16 + str[i] - 'a' + 10;if (str[i] >= '0' && str[i] <= '9')n = n * 16 + str[i]-'0';//必须要加上-‘0’,这样保证两边是整形数据运算。i++;}return n;}void main(){char str[128];printf("请输入一个十六进制数:");gets(str);printf("Ox%s=%d", str, Transpose(str));}


三、执行结果

输入:

请输入一个十六进制数:1A

输出:

Ox1A=26

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。