PTA基础编程题目集 7-4 BCD解密(C语言实现)
题目描述摘要本文介绍了一道基于 BCD 码误解的编程题。题目给出一个被错误当作二进制数转成十进制的 BCD 值范围 0–153要求程序将其还原为正确的十进制数。核心思路是将错误值的高 4 位和低 4 位分离再按十进制位权十位×10 个位组合输出。BCD 数是用一个字节来表达两位十进制的数每四个比特表示一位。所以如果一个 BCD 数的十六进制是 0x12它表达的就是十进制的 12。但是小明没学过 BCD把所有的 BCD 数都当作二进制数转换成十进制输出了。于是 BCD 的 0x12 被输出成了十进制的 18 了现在你的程序要读入这个错误的十进制数然后输出正确的十进制数。提示你可以把 18 转换回 0x12然后再转换回 12。输入格式输入在一行中给出一个[0, 153]范围内的正整数保证能转换回有效的BCD数也就是说这个整数转换成十六进制时不会出现A-F的数字。输出格式输出对应的十进制数。输入样例18输出样例12原始十进制数12BCD 编码0x12每4位表示一位十进制小明误解当作二进制按位权转为十进制错误输出18即 0x12 162 18程序读入错误值 n 18提取高4位n / 16 1提取低4位n % 16 2十位 × 10 个位1 × 10 2 12输出正确结果12代码部分实现#includestdio.hintmain(){intn;scanf(%d,n);// 读入小明转换出的“错误的十进制数”例如 18// 小明把 BCD 数如 0x12当成二进制数转换成十进制// 所以他得到的值其实就是 BCD 数的十六进制表示本身。// 例如 0x12 → 0001 0010 → 二进制值 18 就是 0x12 的十进制形式。// 因此 n 确实等于原始 BCD 的十六进制值。// 分离十六进制的高 4 位十位和低 4 位个位// n / 16 相当于右移 4 位得到高 4 位的值0–9 之间的十位数字inthigh_digitn/16;// n % 16 相当于与 0x0F 按位与得到低 4 位的值0–9 之间的个位数字intlow_digitn%16;// 按十进制位权重新组合十位 × 10 个位intresulthigh_digit*10low_digit;printf(%d\n,result);// 输出正确的十进制数例如 12return0;}算法步骤总结读入错误值scanf(%d, n)获取小明误解后输出的十进制数该值恰好就是原始 BCD 数的十六进制表示因为小明把它当二进制数转成了十进制。提取十位high_digit n / 16。整数除法相当于将二进制表示右移 4 位截取高 4 位对应原 BCD 的十位数字取值范围 0–9。提取个位low_digit n % 16。取模运算相当于只保留低 4 位对应原 BCD 的个位数字取值范围 0–9。重组正确值result high_digit * 10 low_digit。将提取出的十位和个位按十进制位权相加得到原本的 BCD 十进制表示。输出printf(%d\n, result)打印正确答案。

相关新闻

高精度罗氏线圈积分器设计:TI TIDA-00777参考设计解析与工程实践

高精度罗氏线圈积分器设计:TI TIDA-00777参考设计解析与工程实践

1. 项目概述与核心价值在电力系统保护、电能质量分析以及工业电机驱动等应用场景中,对交流电流进行高精度、高带宽、非接触式测量是一项基础且关键的需求。传统的电流互感器(CT)存在磁饱和、体积大、带宽有限等问题,而罗氏线圈&am…

2026/7/26 7:08:38阅读更多 →
Linux进程创建:fork()原理与应用实践

Linux进程创建:fork()原理与应用实践

1. 进程与fork基础概念在Linux系统中,进程是程序执行的基本单位。每个进程都有自己独立的内存空间、文件描述符和系统资源。当一个进程创建另一个新进程时,我们称前者为父进程,后者为子进程。fork()系统调用就是实现这一过程的底层机制。注意…

2026/7/26 7:08:38阅读更多 →
AM62L SoC CBASS防火墙配置实战:从寄存器解析到安全内存隔离

AM62L SoC CBASS防火墙配置实战:从寄存器解析到安全内存隔离

1. CBASS防火墙在AM62L SoC中的核心地位与设计哲学在嵌入式系统,尤其是像TI AM62L这样的复杂多核异构SoC中,系统安全与稳定性的基石往往不是软件,而是硬件。当你在调试一个多核应用,发现某个核心的代码莫名其妙地篡改了另一个核心…

2026/7/26 7:08:38阅读更多 →
Compute Shader核心原理与GPU并行计算优化实战指南

Compute Shader核心原理与GPU并行计算优化实战指南

1. 项目概述:为什么ComputeShader是图形学性能的“核武器”?在图形渲染管线里,我们习惯了顶点着色器、片元着色器的流水线作业。但当你需要处理海量粒子模拟、复杂物理碰撞、实时体素化或者全局光照的预计算时,传统的渲染管线就显…

2026/7/26 8:24:49阅读更多 →
【超声波在电池上的应用之一】超声波如何“听“懂电池?—声学物理基础与电池响应机制深度解析

【超声波在电池上的应用之一】超声波如何“听“懂电池?—声学物理基础与电池响应机制深度解析

TL;DR当前主流BMS依赖电压、电流、温度"电学三件套"感知电池状态,但对电池内部机械/结构变化缺乏直接感知能力。超声波检测(UT)技术通过向电池发射声波并分析其传播特征——飞行时间(ToF)、振幅衰减、频谱特…

2026/7/26 8:24:49阅读更多 →
Windows文件关联机制与注册表操作详解

Windows文件关联机制与注册表操作详解

1. 文件关联的本质与系统机制在Windows操作系统中,文件关联(File Association)是一套将特定扩展名的文件与对应应用程序绑定的机制。这个看似简单的功能背后,其实涉及注册表、MIME类型、默认程序设置等多层系统架构。当我们双击一…

2026/7/26 8:24:49阅读更多 →
国内首个 uv 全链路镜像上线:安装、Python 下载、包索引一站加速

国内首个 uv 全链路镜像上线:安装、Python 下载、包索引一站加速

uv 是 Astral 团队用 Rust 编写的超快 Python 包管理器,比 pip 快 10–100 倍,以一个工具替代 pip、pip-tools、pipx、poetry、pyenv、virtualenv 等一整套工具链。然而在国内,uv 的三大网络环节——安装包下载、Python 解释器安装、Astral 元…

2026/7/26 8:24:49阅读更多 →
Claude AI编程助手实战:交互式代码学习与应用

Claude AI编程助手实战:交互式代码学习与应用

1. 项目概述"Claude code学习记录"这个项目标题看似简单,却蕴含着一个开发者对新技术探索的完整历程。作为一名长期关注AI编程助手的开发者,我最近系统性地研究了Claude的代码交互能力,并记录下了整个学习过程中的关键发现和实战经…

2026/7/26 8:24:49阅读更多 →
Mac系统自带OpenSSL生成RSA密钥:从原理到实战排错指南

Mac系统自带OpenSSL生成RSA密钥:从原理到实战排错指南

1. 项目概述:为什么Mac用户应该拥抱自带的OpenSSL如果你是一名Mac开发者,或者需要处理任何与加密、证书、API密钥相关的工作,那么“生成RSA密钥”这个需求对你来说一定不陌生。无论是配置SSH免密登录服务器、为你的应用生成签名密钥、还是对接…

2026/7/26 8:22:49阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →