c语言(编程题:十六进制数转换为十进制)

C语言

题目

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

基础知识

1. 十六进制定义

-------16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数。16进制转换即16进制与其他不同进制之间的换算转换,常见如2进制、8进制、10进制等进制。
且16进制的标准表示一般为0x后跟数字

2. 十六进制转换

-------十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15。

3. 各种进制对照表:
在这里插入图片描述

分析题目

  • 首先明白16进制如何通过计算转换为10进制。

--------16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

  • 举例: 将0x2AF5换算成10进制
    5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997

编程解决

将问题分析过后我们知道了两种进制转换的原理,也会进行进制转换的计算,现在我们需要把这些数学思想转换为编程语言。
并且在进制转换的编程中有许多小问题一下将会做出详解。

1.先定义编写函数的名称:

int Get_0x(const char* str)//将函数命名为Get_0x 并且形参为不可修改的字符串 

2.进制转换函数用到的头文件:

#include <stdio.h>//标准库函数
#include <ctype.h>//特殊字符判断的头文件
#include <string.h>//字符串操作用到的头文件
#include <limits.h>//检测整型数据类型的表达式范围

3.如果遇到空格的处理:

while (isspace(*str))
	{
   
		str++;//因为空格在转换过程中对数值没有影响,直接++后移进行后续操作
	}

4.正负号的判断及解决方法:

int index = 1;
	if (*str == '-' || *str == '+')
	{
   
		if (*str == '-')
		{
   
			index *= 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mi ronin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值