用C语言实现“7-4 BCD解密”,明白十进制、二进制、十六进制的转换过程,基础编程由此开始(第四节)

本文通过一道基础编程题目,讲解了十进制、二进制和十六进制之间的转换,特别是BCD(二进制编码的十进制)解密。作者首先介绍了错误的转换方法导致的问题,然后详细阐述了正确的解题思路,包括从十进制转换到二进制,再转换到十六进制,最后讨论了更简洁的解题方法——直接进行十进制到十六进制的转换。
摘要由CSDN通过智能技术生成

今天这道题目呢,与之后要讲到的“龟兔赛跑”都是从PAT的基础编程题目中节选过来的。

难度不是很大,但是特别基础,复习到了基础知识,也就是二进制、十进制两者之间的相互转换。

我们先来看看这道题目的要求:

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。

所以,如果一个BCD数的十六进制为0x12,那么它的十进制也是12。

此时有一位小伙伴并不知道BCD数的运算规则,直接把0x12当作二进制来转换成十进制,那就会得到18。

现在呢,我们就期望能把这个错误得到的十进制,转换成我们期望得到的十进制数值。

给定的这个错误十进制范围为[0,153]。

题目要求呢我们都清楚了,接下来就是如何解决这个问题。

这里呢,主要涉及到的是十六进制和十进制之间以及二进制和十进制之间的转换。

但我呢,好像把这道题目给想复杂了emm,结果导致简单问题复杂化,实在是不应该啊。

理清逻辑,画出流程图,这是十进制转换为二进制再进行BCD解密

程序要写正确的话,流程图用来帮助理清逻辑非常好用,这张流程图画的有些小,真的有些不好意思。

可以从这张流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值