当前位置: 首页 > news >正文

C语言:写一个函数,输入一个十六进制数,输出相应的十进制数

分析:

    当用户运行该程序时,程序会提示用户输入一个十六进制数。用户需要在命令行中输入一个有效的十六进制数,例如:"1A3F"。
    接下来,程序调用了名为 xbed 的函数,并将用户输入的十六进制数作为参数传递给该函数。
在函数 xbed 中,我们定义了两个变量 i 和 sum,其中 i 用于循环遍历输入的十六进制数,sum 用于存储最终的十进制值。
     然后,使用一个 for 循环来遍历输入的十六进制数。在每次循环中,我们首先检查当前字符是否在 '0' - '9' 的范围内,如果是,则表示该字符是一个数字。我们将其转换为对应的十进制数,并更新 sum 变量。
    如果当前字符不是数字,则继续检查它是否在 'A' - 'F' 或 'a' - 'f' 的范围内。如果是,则表示该字符是一个字母(A-F或a-f)。我们将其转换为对应的十进制数,并更新 sum 变量。
    如果当前字符既不是数字也不是字母,则说明输入的字符串不是一个有效的十六进制数。程序输出一条错误提示信息,并使用 exit 函数终止程序的执行。
    当循环结束后,我们打印出转换后的十进制数 sum。

代码:

#include<stdlib.h>
int main()
{void xbed(char b[]);int i = 0;char a[10000];printf("十六进制:");scanf("%s", a);xbed(a);
}
void xbed(char a[])
{int i = 0, sum = 0;for(;a[i];i++){if (a[i] >= '0' && a[i] <= '9') sum = sum * 16 + a[i] - 48;else if (a[i] >= 'A' && a[i] <= 'F')  sum = sum * 16 + a[i] - 55;else if (a[i] >= 'a' && a[i] <= 'f')  sum = sum * 16 + a[i] - 87;elseprintf("这不是16进制"); exit(EXIT_FAILURE);}printf("十进制:");printf("%d\n", sum);
}

运行结果:

相关文章:

  • 手敲单链表,简单了解其运行逻辑
  • 用户反馈组件实现(Vue3+ElementPlus)含图片拖拽上传
  • Mybatis-Plus实现分页查询
  • Jquery动画特效
  • 【详解】Spark数据倾斜问题由基础到深入详解-完美理解-费元星
  • 使用K-means把人群分类
  • MongoDB的部署
  • 成倍提高生产力工具Notion
  • 解决ansible批量加入新IP涉及known_hosts报错的问题
  • uniapp中解决swiper高度自适应内容高度
  • 后端返回图片流前端展示图片
  • 【蓝桥杯软件赛 零基础备赛20周】第5周——高精度大数运算与队列
  • linux(3)之buildroot配置软件包
  • JavaScript中的时间日期函数new Date()(JS中5种获取时间戳的函数)
  • SELinux refpolicy详解(5)
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Android Studio:GIT提交项目到远程仓库
  • export和import的用法总结
  • Java 网络编程(2):UDP 的使用
  • JavaScript设计模式与开发实践系列之策略模式
  • JS题目及答案整理
  • js作用域和this的理解
  • Markdown 语法简单说明
  • React as a UI Runtime(五、列表)
  • 从零开始在ubuntu上搭建node开发环境
  • 大整数乘法-表格法
  • 动态魔术使用DBMS_SQL
  • 前端知识点整理(待续)
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 我的面试准备过程--容器(更新中)
  • 线性表及其算法(java实现)
  • ​TypeScript都不会用,也敢说会前端?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (HAL库版)freeRTOS移植STMF103
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (超详细)语音信号处理之特征提取
  • (二)丶RabbitMQ的六大核心
  • (转)用.Net的File控件上传文件的解决方案
  • .Mobi域名介绍
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • @Autowired @Resource @Qualifier的区别
  • [ C++ ] STL---string类的模拟实现
  • [ IO.File ] FileSystemWatcher
  • [04] Android逐帧动画(一)
  • [20171113]修改表结构删除列相关问题4.txt
  • [Angular] 笔记 18:Angular Router
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [ComfyUI进阶教程] animatediff视频提示词书写要点