C语言实现十六进制转换为十进制的方法
这篇文章主要为大家详细介绍了C语言实现十六进制转换为十进制的方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
题目描述
输入一个十六进制数字串,将其转换成为对应的整数并输出转换结果,遇到非十六进制数字或字符串结束符('\0')结束转换。
注意: 输入的字符串的长度不会超过100;转换后的值不会超出int类型的范围。
1.测试输入:55 //程序的输入不会有十六进制的前缀
预期输出:85
2.测试输入:f1r2 //程序的输入不会有十六进制的前缀
预期输出:241
补充知识
十六进制转换为十进制的做法:
算法分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
上面代码不够完善,当遇到一些特殊情况(当出现非16进制的字符的时候)就会出错,例如:
测试输入:5r //程序的输入不会有十六进制的前缀
预期输出:5
实际输出:80
问题在于:
我们使用字符的长度n(程序中以len代替)来决定 5*,r也被记录在内,导致多乘了一个16。
而且对循环的结束条件设置的不合理,如果输入的例子为5r123,那么就会被计算为
优化算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
补充办法
除了以上方法,小编为为大家整理了一些其他方法实现十六进制转十进制,需要的可以参考一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|
调试结果
到此这篇关于C语言实现十六进制转换为十进制的方法详解的文章就介绍到这了,希望对你有所帮助。
来源:https://www.weidianyuedu.com
C语言实现十六进制转换为十进制的方法相关推荐
- 一种在程序中将十六进制转换为十进制的简单方法
在网上找了很多将十六进制转换为十进制的方法,都比较复杂:后来自己想了一个比较简单的方法,跟大家分享一下! 以下是C++语言编写的代码: #include<iostream> using n ...
- c语言中将十六进制数转换为十进制数程序,C语言中十六进制转十进制两种实现方法...
C语言中十六进制转十进制两种实现方法 C语言 · 十六进制转十进制 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英 ...
- c语言栈10转16进制,用栈实现十六进制转换为十进制.doc
用栈实现十六进制转换为十进制 数据结构上机报告 班 级信科2班学 号19姓 名李柏威 实验内容:利用栈的基本操作,写一个C程序实现将十进制数转化为十六进制数 实验目的:掌握栈的操作 提交内容: C语言 ...
- 将二进制、八进制、十六进制转换为十进制
上节我们对二进制.八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言. 将二进制.八进制.十六进制转换为十进制 二进制.八进制和十六进制向十进制转换都非常容 ...
- 十六进制转换为十进制的效率问题
十六进制转换为十进制这样说有点笼统,因为一般来说十六进制是字符串,十进制也可能是字符串或是整数.下面我们来看看. 1.十六进制字符串转换为十进制的字符串 #include<stdio.h> ...
- C语言中将数字转换为字符串的方法
C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子: # include <stdio. h> # ...
- C语言任何基数转换为十进制(附完整源码)
C语言任何基数转换为十进制 C语言任何基数转换为十进制完整源码 C语言任何基数转换为十进制完整源码 #include <ctype.h> #include <stdio.h>i ...
- C语言极坐标转直角坐标,C语言实现直角坐标转换为极坐标的方法
本文实例讲述了C语言实现直角坐标转换为极坐标的方法.分享给大家供大家参考,具体如下: #include #include struct complex_s{ double x,y; }; double ...
- 任意进制转换为十进制(十六进制转换为十进制)
一.十六进制转换为十进制 unsigned long HextoDec(char *hex, int length) {int i;unsigned long rslt = 0;for (i = 0; ...
最新文章
- java生成sql语句_java生成SQL语句
- ISP PIPLINE (九_1) Denoise 之 space domain denoise
- oracle 分区表
- itext 添加空格_借助 iText 用代码在 PDF 中创建空白签名域
- u盘安装ubuntu_简单实用的ubuntu18.04安装
- Postman界面了解
- Nginx命令配置到系统环境
- 现代的时代精神是什么?
- 通信模块开发 c语言,I2C通信模块c语言库文件
- 微软符号服务器opencv的符号,Opencv Mat类详解和用法1
- ORACLE客户端连接
- jmx为啥开了额外两个随机端口?
- caffe/build/tools下会生成一些工具
- Extjs学习(3):事件和动作
- java事物 tran_Java基础——事务
- 面试官:如何理解TCP/IP协议?
- BaseFX 实习小记(一)
- 男友是程序员,看着他压力大我难受。有哪些缓解压力的好方法?
- 使用终端生成icns,icon文件
- 如何利用液体密度传感器准确地表征罐箱的质量规格?
热门文章
- C++我的世界2D版
- 可编程控制器的应用技术
- java ISO 8601 日期格式进行转换
- signature=a8a3e788013f73439051c7287d7f5f0b,广东省第三届强网杯Writeup
- php递归函数命令,PHP递归函数用法
- 菜鸟之路——机器学习之SVM分类器学习理解以及Python实现
- 每日一题之hiho213周 Boarding Passes
- Centos 7.3 安装Perl
- linux更mysql改密码_Linux下mysql密码的两种修改方式
- 基于猎人猎物优化算法的函数寻优算法