什么是 BCD(二进制编码的十进制)

article/2025/10/26 8:41:29

BCD 是一位十进制数,由代表 0 到 9 的四位二进制数字表示。 当寄存器值以十六进制表示时,可以原样读取为十进制数,这对于处理十进制数的函数来说非常方便。

二进制数的 4 位可以表示为 0 到 15,但只有低 10 位被视为有效数字。

例如,假设运算的结果是十进制数“37”。 由于它是作为二进制数存储在实际寄存器中的,“0010 0101”就是寄存器值。 另一方面,在使用集成开发工具或液晶显示器显示人类可以确认的数​​字时,十六进制数比二进制数更容易看清,因此以十六进制“25”显示。 但是,这样做很不方便,因为十六进制数“25”很难理解为十进制数“37”。 因此,微机的内部电路将十六进制数“25”转换为“37”。 该寄存器存储的是十六进制数“37”,即二进制数“0011 0111”。 对外显示“0011 0111”时,原样显示为“37”,所以一看就知道运算结果是十进制数“37”。

BCD用于时钟和日历功能。
日期和时间的运算本身是以二进制数进行的,但是将运算结果用BCD保存在寄存器中,将其作为时间和日期显示在外部时,具有可以直接利用寄存器内容的优点。 

BCD是什么

BCD是一个十进制数的数字,表示从0到9的二进制四位数。下表显示了从0到15的十进制和相应的二进制、十六进制和BCD。

 

十进制数从0到9,与十六进制数字相同,因此不需要转换为BCD。但是,十进制数的10到15,在十六进制数中会变成英文字,所以必须转换。例如,十进制数字的“10”在十六进制数字中是“A”。
如果你把它转换成BCD,它会变成10,上升一个数量级。由于二进制数的四位数只能表示为9,所以我们将进一步添加二进制数的四位数,并用八位数表示。 

上表中只显示了十进制的15个数字,但是比这个更大的数字也被转换成同样的方式。例如,十进制的20是十六进制的14,但在BCD中转换为20。另外,十进制数的30是十六进制的1E,但在BCD中转换为30。

如何转换为BCD

如何转换为BCD,相对简单。只要根据数值的大小加上6的倍数就可以了。检查运算结果,如果数量大于9,则加6。如果不到9,我什么都不会做。

 要在BCD中表示大于9的数字,需要二进制数的八位数,因此前四位数字将被添加。在大于9的数字上加上6,必定会在第四位数发生进位。这个进位叫半进位。在微型计算机内部执行BCD转换操作时,通过检查半进位来确定大于9的数。

半进位是CCR(Condition Code Register:条件码寄存器)的H(半进位)。

您可以通过将6添加到十进制的9到15,即十六进制的A到F,将其转换为BCD。此外,更大的数字转换方法如下表所示。这里显示的是十进制数的10到39(十六进制的A到27)。十进制数的10到19的情况下加6,20到29的情况下加12,30到39的情况下加18。这样,通过根据数量的大小加上6的倍数,就可以很容易地转换成BCD。

 例如,考虑一下微型计算机中内置的实时时钟(以下简称RTC:Real Time Clock)处理的数字。
RTC是一种时间时钟定时器,可实现时钟和日历功能。计算分钟和秒的最大值为59。时间最大值为12或24。因此,您可以将转换为BCD的最大值限制为59或24。也就是说,即使用普通BCD表示2位数,也可以用6位或7位来表示,而不需要仅限于RTC的所有8位。此外,您还可以在1位和10位之间进行转换,从而优化硬件逻辑规模。


http://chatgpt.dhexx.cn/article/TdEPps9t.shtml

相关文章

十进制转8421_BCD码

目录 一、BCD码简介 二、十进制转8421BCD码转换思路 三、程序编写 四、仿真验证 总结 一、BCD码简介 BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,常…

十进制数转换BCD码

有必要仔细阐述这一节,目前就是用在数码管显示,在单片机使用时,我们通常是将十进制数字进行/和%运算,得到每个位置的十进制数字,在这里可能是为了节省使用存储器的量,运用的是加三移位法具体其实就是将每个…

C语言:十进制、BCD码互换

目录 1、复杂版 2、简易版 最近写单片机 RTC 日期、时间配置,需要实现十进制、BCD码互换,将示例Demo分享给各位朋友: BCD是指用二进制来表示十进制数的编码,即:用4位二进制来表示一位十进制数,因此4位二进…

BCD码转化为十进制数

2019独角兽企业重金招聘Python工程师标准>>> 什么是BCD码:用4位二进制数来标识十进制数中的0-9这十个数的编码形式,简称为BCD码。BCD码优点:这种编码形式使二进制和十进制之间的转换能够快捷进行。采用BCD码,既可保存数…

BCD码以及各进制之间的相互转换

目录 前言 一、BCD码 二、进制互转 1、任意进制转十进制:系数X基数 ^ 权值(累加) 2、任意进制转二进制 前言 主要学习什么是BCD码,以及二进制、八进制、十进制、十六进制之间的相互转换 一、BCD码 BCD码就是以四位二进制数为一…

BCD码与十进制数间转换

一、前言: 这几天在项目协议对接的时候有一部分功能是获取系统时间功能与校时功能。小马哥获取到时间后打印了一下 2020-5-26 20:06:32,一看时间是对的,然后美滋滋的组装协议发送平台测试了。测试的时候发现月、日、时分秒数据都正常&#x…

黑马Python笔记3

输入时,占位符在引号里面,而要接受的变量在引号外面eg:"…%d"%player) expected an indented block:缩进错误。if对缩进有要求,python对缩进要求严格 if表判断 双等号一定要记住!!! i…

2021-03-30 黑马Python学习笔记

操作系统OS(Operation System) 操作系统作用 1、直接操作硬件 2、把操作硬件的代码封装成系统调用,供其他成员间接操作硬件 没有安装操作系统的计算机被称为裸机 如果想在裸机上运行程序,必须用机器语言书写程序 如果计算机上…

黑马python在线培训

过去的2017年这一年,Python 开发者在全球快速增长,国内小伙伴学习 Python 的热情一路高涨。同时,Python 成为大量开发者推荐的入门编程语言和第二编程语言。2017年12月,Python 在 TIOBE 全球编程语言年度排行榜上升至第四&#xf…

黑马python培训安排

在分享资源之前,大家可以先想清楚未来的职业发展方向。毕竟只有找到未来职业发展方向,才更清楚当下重点学习的内容。 根据上图我们基本上一目了然,找到自己未来要发展的方向。在找到之后可以在各个招聘app上了解一下相关岗位的技能要求是什么…

[学习笔记]黑马程序员python教程

文章目录 思维导图Python基础知识图谱面向对象SQL入门和实战Python高阶技巧 第一阶段第九章:Python异常、模块与包1.9.1异常的捕获1.9.1.1 为什么要捕获异常1.9.1.2 捕获常规的异常1.9.1.3 捕获指定的异常1.9.1.4 捕获多个异常1.9.1.5 捕获全部异常1.9.1.6 异常的el…

黑马python6.0培训视频

关于对Python有一些了解的同学,肯定都会说Python语法简洁适合新手,便于阅读等这些方面。实际上是这样的,很多国内计算机专业都是C语言作为第一门学习的语言,很多国外的却是Python入门。因为Python可以让你在短时间内找到成就感&am…

黑马 Python 数据结构与算法第一章

背景知识 1.数组是一种线性表结构,其用一块连续的内存空间,来存储一组具有相同类型的数据; 2.时间复杂度,也叫做渐进时间复杂度,通常用大O公式书写,表示代码的执行时间随数据规模增长的变化趋势&#xff0c…

黑马程序员 python 数据分析 代码_2020年最新版 5.0程序员 黑马python人工智能数据分析机器学习软件测试全栈开发...

阶段一: 5.0课程资料 收起 第一章: 1-Python基础语法v5.0 第二章: 2-面向对象编程v5.0 第三章: 3-linux命令v5.0 第四章: 4-多任务编程v5.0 第五章: 5-web服务器v5.0 第六章: 6-web前端开发基础v5.0 第七章: 7-MySQL数据库v5.0 第八章: 8-mini-web框架v5.0 第九章: 9-django框架…

黑马python培训视频网盘下载

前几天看到朋友老周发了个朋友圈,我心态立马炸了: 好家伙!竟然有钱入手五位数的最新款手机,这也太酸了吧! 可他不是整天哭穷么,哪来这么多钱?我的内心充满了疑惑。 趁着昨天他来我家&#xff0c…

上海黑马python培训

过去的2017年这一年,Python 开发者在全球快速增长,国内小伙伴学习 Python 的热情一路高涨。同时,Python 成为大量开发者推荐的入门编程语言和第二编程语言。2017年12月,Python 在 TIOBE 全球编程语言年度排行榜上升至第四&#xf…

黑马Python笔记4

命名的时候宜严格按照要求,不易出现空格宜使用_ 调用函数时,创建新项目的时候选择新窗口,否则出错。 定义函数的格式 def 函数名():函数的命名字母数字下划线 … 调用函数:函数名() …

python黑马学习

python的自述 能做什么 1.抢火车票 2.数据分析 3.开发网站 4.开发游戏 发展定位 web全栈开发方向 掌握技术 前端开发 数据库管理 后台框架 职业方向 web全栈开发工程师 数据科学方向 人工智能方向,机器学习 人工智能方向,深度学习 等等…

黑马程序员最新Python教程——第一阶段(1)

黑马程序员最新Python教程——第一阶段(1) Python导学 第一阶段——第一章01-初识Python02-什么是编程语言03-Python环境安装04-Python环境安装(macOS)05-Python环境安装(Linux)06-第一个Python程序-Hello …

黑马 python课程笔记1——值类型、数据类型、字符串

目录 字面量 常用的值类型 字符串 注释 变量 数据类型 数据类型转换 标识符 运算符 字符串的拓展 字符串的三种定义 字符串的拼接 字符串格式化 格式化的精度控制 表达式格式化 字面量 字面量:在代码中,被写下来的固定的值,称之为字面量。 常…