找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2730|回复: 6
打印 上一主题 下一主题
收起左侧

BCD码转十进制!!!!

[复制链接]
跳转到指定楼层
楼主
ID:904473 发表于 2021-6-1 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问    b/16*10+b%16
这个BCD 码转十进制 为什么 是除以16呀?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:844772 发表于 2021-6-1 14:30 | 只看该作者
这是数学问题,只有我闲着没事才会回答,bcd码是用四个bit存一个十进制数,虽然浪费但是省了计算时间,所以十位数存在第8-5位上,那1-4位是2^4=16,所以十位的数字是/16*10。
回复

使用道具 举报

板凳
ID:824490 发表于 2021-6-1 17:05 | 只看该作者
楼上说的对:
  b/16*10+b%16,比如这个,b=0x27这个BCD数值,经过这公式后,b/16*10+b%16,结果是10进制的27,
b/16是取高4位的值,把这个值当成10进制的10位,所经要*10,b%16是取低4位,即10进制的个位数。
PS:存为BCD的16进制数值,其中不会出现ABCDEF这样的值,不然计算会出错的。
我发现我也是太闲了。。。。。。
回复

使用道具 举报

地板
ID:883031 发表于 2021-6-1 17:57 | 只看该作者
简单地说,除以16相当于把这个字节右移了4位。
回复

使用道具 举报

5#
ID:452950 发表于 2021-6-1 22:52 | 只看该作者
因为BCD码是十进制数每一位换成16进制
回复

使用道具 举报

6#
ID:584814 发表于 2021-6-7 20:37 | 只看该作者
楼主可从头学一下二进制,没基础就迈大步容易扯蛋。
回复

使用道具 举报

7#
ID:934779 发表于 2021-6-8 13:27 | 只看该作者
BCD码是十进制数每一位换成16进制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表