0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

二进制编码的十进制表示转换解码器

模拟对话 来源:陈年丽 2019-06-24 09:31 次阅读

Binary Coded Decimal,或BCD,是将十进制数转换为二进制数的另一个过程

正如我们在教程的二进制数部分所看到的,使用了许多不同的二进制代码在数字和电子电路中,每个都有自己的特定用途。

由于我们自然生活在十进制(基数为10)的世界中,我们需要一些方法将这些十进制数转换为二进制数(base-2)计算机和数字电子设备理解的环境,以及二进制编码的十进制代码允许我们这样做。

我们之前已经看到,n位二进制代码是一组“n”位,假定为 2 n 1和0的不同组合。二进制编码十进制系统的优点是每个十进制数字由一组4个二进制数字或位表示,其方式与十六进制大致相同。因此,对于10位十进制数字(0到9),我们需要一个4位二进制代码。

但不要混淆,二进制编码的十进制不一样十六进制。而4位十六进制数有效至 F 16 表示二进制 1111 2 ,(十进制15) ,二进制编码的十进制数停在 9 二进制 1001 2 。这意味着虽然可以使用四个二进制数字表示16个数字( 2 4 ),但在BCD编号系统中,六个二进制代码组合: 1010 (十进制10), 1011 (十进制11), 1100 (十进制12), 1101 (十进制13), 1110 (十进制14)和 1111 (十进制15)被归类为禁号,不能使用。

二进制编码小数的主要优点是它允许在decimal(base-10)和binary(base-2)表单之间轻松转换。但是,缺点是BCD代码是浪费的,因为不使用 1010 (十进制10)和 1111 (十进制15)之间的状态。然而,二进制编码的十进制有许多重要的应用,特别是使用数字显示。

在BCD编号系统中,十进制数被分成四位,用于数字中的每个十进制数字。每个十进制数字由其加权二进制值表示,执行数字的直接转换。因此,一个4位组表示每个显示的十进制数字,从 0000 表示零到 1001 表示九。

因此,例如,十进制的 357 10 (三百五十七)将以二进制编码的十进制表示为:

357 10 = 0011 0101 0111 (BCD)

然后我们可以看到BCD使用加权编码,因为每个4位组的二进制位表示最终值的给定权重。换句话说,BCD是加权代码,二进制编码十进制代码中使用的权重是 8 , 4 , 2 , 1 ,通常称为8421代码,因为它形成相关十进制数字的4位二进制表示。

十进制数字的二进制编码十进制表示

h3>

Binary Power 2 3 2 2 2 1 2 0
二进制重量: 8 4 2 1

左边每个十进制数的十进制重量增加10倍。在BCD数字系统中,每个数字的二进制权重增加 2 如图所示。然后第一个数字的权重为 1 ( 2 0 ),第二个数字的权重为 2 ( 2 1 ),第三个是 4 的重量( 2 2 ) ,第四个权重 8 ( 2 3 )。

然后是十进制(denary)数字与加权二进制编码的十进制数字如下所示。

二进制编码十进制的真值表

然后我们可以看到8421 BCD代码只不过是每个二进制数字的权重,每个十进制(denary)数字表示为其四位纯二进制数。

十进制到BCD转换

正如我们上面所看到的,十进制到二进制编码十进制的转换非常类似于十六进制到二进制的转换。首先,将十进制数字分成加权数字,然后记下表示每个十进制数字的等效4位8421 BCD代码,如图所示。

二进制编码十进制示例No1

使用在上表中,将以下十进制(denary)数字转换为:85 10 ,572 10 和8579 10 到它们的8421 BCD等价物中。

85 10 = 1000 0101 (BCD)

572 10 = 0101 0111 0010 (BCD)

8579 10 = 1000 0101 0111 1001 (BCD)

请注意生成的二进制数后转换将是十进制数字的真正二进制转换。这是因为二进制代码转换为真正的二进制计数。

BCD到十进制转换

从二进制编码的十进制到十进制的转换与上面的完全相反。只需将二进制数分成四位数组,从最低有效位开始,然后写入每个4位组所代表的十进制数。如果需要生成完整的4位分组,最后添加额外的零。例如, 110101 2 将变为: 0011 0101 2 或 35 10 十进制。

二进制编码的十进制示例No2

转换以下二进制数:1001 2 ,1010 2 ,1000111 2 和10100111000.101 2 到它们的十进制等值中。

1001 2 = 1001 BCD = 9 10

1010 2 = 这会产生错误,因为它是十进制 10 10 且不是有效的BCD编号

1000111 2 = 0100 0111 BCD = 47 10

10100111000.101 2 = 0101 0011 0001.1010 BCD = 538.625 10

BCD到十进制或十进制到BCD的转换是一个相对简单的任务,但我们需要记住BCD数是十进制数而不是二进制数数字,即使它们是用比特表示的。十进制数的BCD表示很重要,因为大多数人使用的基于微处理器的系统需要在十进制系统中。

然而,虽然BCD易于编码和解码,但它不是存储数字的有效方式。在十进制数的标准8421 BCD编码中,表示给定十进制数所需的各个数据位的数量将始终大于等效二进制编码所需的位数。

例如,二进制从0到999的三位十进制数仅需要10位( 1111100111 2 ),而在二进制编码的十进制中,相同的数字至少需要12 -bits( 0011 1110 0111 BCD )用于相同的表示。

此外,使用二进制编码的十进制数执行算术任务可能有点尴尬每个数字不能超过9.在BCD中添加两个十进制数字将产生一个可能的进位位1,需要将其添加到下一组4位。

如果二进制和添加的进位位等于或小于9(1001),相应的BCD数字是正确的。但是当二进制和大于9时,结果是无效的BCD数字。因此,最好将BCD数转换为纯二进制数,执行所需的加法,然后在显示结果之前将其转换回BCD。

然而,在微电子和计算机中使用BCD编码系统系统在二进制编码的十进制数据打算显示在一个或多个7段LED或LCD显示器上的情况下特别有用,并且有许多流行的集成电路可用于提供BCD输出或输出。

一个常见的IC是74LS90异步计数器/分频器,它包含独立的2分频和5分频计数器,可以一起使用以产生具有BCD输出的10分频计数器。另一个是74LS390,它是基本74LS90的双版本,也可以配置为产生BCD输出。

但最常用的BCD编码IC是74LS47和74LS48 BCD到7-段解码器/驱动器,它转换计数器的4位BCD码等,并将其转换为所需的显示代码,以驱动7段LED显示器的各个段。虽然两个IC功能相同,但74LS47具有用于驱动共阳极显示器的低电平有效输出,而74LS48具有用于驱动共阴极显示器的高电平有效输出。

二进制编码十进制解码器IC

二进制编码的十进制摘要

我们在这里看到二进制编码的十进制或BCD只是十进制数字的4位二进制代码表示,每个十进制数字在整数和小数部分中替换为二进制等效。 BCD代码使用4位来表示0到9的10位十进制数字。

因此,例如,如果我们想要显示0到9(一位数)范围内的十进制数字,我们会需要4个数据位(半字节),0到99范围内的十进制数,(两位数)我们需要8位(一个字节),0到999范围内的十进制数,(三位数) )我们需要12位,依此类推。使用单字节(8位)存储或显示两个BCD数字,允许字节保存00-99范围内的BCD编号,称为压缩BCD 。

标准二进制编码十进制代码通常称为加权8421 BCD代码,其中8,4,2和1表示从最高有效位(MSB)开始并向最低有效位开始的不同位的权重位(LSB)。 BCD码的各个位置的权重为: 2 3 = 8 , 2 2 = 4 , 2 1 = 2 , 2 0 = 1 。

主要二进制编码十进制系统的优点在于,与纯二进制系统相比,它是一种快速有效的系统,可将十进制数转换为二进制数。但是BCD代码是浪费的,因为许多4位状态(10到16)没有使用,但十进制显示有重要的应用。

十进制数 BCD 8421代码
0 00000000
1 00000001
2 00000010
3 00000011
4 00000100
5 00000101
6 00000110
7 00000111
8 00001000
9 00001001
10(1 + 0) 00010000
11(1 + 1) 00010001
12(1 + 2) 00010010
... ...
20(2 + 0) 00100000
21(2 + 1) 00100001
22(2 + 2) 00100010
等,继续以四人为一组

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 解码器
    +关注

    关注

    9

    文章

    1129

    浏览量

    40620
  • 真值表
    +关注

    关注

    0

    文章

    25

    浏览量

    15129
  • 二进制数
    +关注

    关注

    0

    文章

    12

    浏览量

    7717
收藏 人收藏

    评论

    相关推荐

    二进制补码及与原码的互相转换方法

    大沙把一些基础的知识说清楚,本文介绍二进制补码及与原码的转换方法。 先说原码,原码‌是一种计算机中对数字的二进制定点表示方法。在原码表示法中
    的头像 发表于 09-19 22:25 315次阅读

    二进制处理中的一些技巧

    二进制十进制的处理中,有时候一些小技巧是很有用的。 1、把十进制转换二进制数 (1)在MATLAB中有一个函数dec2b
    的头像 发表于 07-05 11:51 472次阅读

    十进制和4位二进制计数数据表

    电子发烧友网站提供《十进制和4位二进制计数数据表.pdf》资料免费下载
    发表于 05-31 09:32 0次下载
    <b class='flag-5'>十进制</b>和4位<b class='flag-5'>二进制</b>计数<b class='flag-5'>器</b>数据表

    二进制串行计数工作原理是什么?

    在数字电路设计中,计数是一种非常关键的组件,用于测量时间、计数事件或跟踪状态变化等。其中,二进制串行计数作为一种常用的计数类型,在多种应用场景中都发挥着重要作用。本文将对
    的头像 发表于 05-28 15:52 667次阅读

    双4位十进制二进制计数数据表

    电子发烧友网站提供《双4位十进制二进制计数数据表.pdf》资料免费下载
    发表于 05-13 11:12 0次下载
    双4位<b class='flag-5'>十进制</b>和<b class='flag-5'>二进制</b>计数<b class='flag-5'>器</b>数据表

    同步4位十进制二进制计数数据表

    电子发烧友网站提供《同步4位十进制二进制计数数据表.pdf》资料免费下载
    发表于 05-09 11:29 0次下载
    同步4位<b class='flag-5'>十进制</b>和<b class='flag-5'>二进制</b>计数<b class='flag-5'>器</b>数据表

    如何实现二进制和BCD码数据的相互转变?

    如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示二进制数和十进制数的一种表示
    的头像 发表于 02-18 14:51 3038次阅读

    鸿蒙二进制数组创建

    背景 c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。 接口
    的头像 发表于 01-31 15:24 1192次阅读

    二进制、八进制、十六进制在现实当中有什么意义?

    ,我们可以从数字存储和数据传输的角度来看这些进制的意义。计算机内部使用的是二进制,即由0和1组成的数字系统。这是因为计算机中的所有数据都被转化为二进制形式进行处理和存储。人们使用十进制
    的头像 发表于 01-16 11:14 4780次阅读

    10进制转换二进制的算法

    十进制转换二进制是计算机科学中非常基础且重要的概念之一。在理解和应用计算机科学的基础知识时,掌握这个算法是至关重要的。 在开始讲解十进制转换
    的头像 发表于 01-15 10:32 2728次阅读

    10进制转换二进制的算法

    10进制转换二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10进制
    的头像 发表于 01-11 09:14 2123次阅读

    labview二进制字符串转数值

    字符串是一种常见的数据类型,它表示了以二进制形式存储的数据。当我们需要将这些二进制字符串转换为数值时,LabVIEW提供了一些常用的函数和方法,可以帮助我们完成这个任务。 首先,我们需
    的头像 发表于 01-05 16:20 2363次阅读

    你知道十进制二进制如何进行转换吗?

    你知道十进制二进制如何进行转换吗? 当我们提到数字系统时,最常见的是十进制系统和二进制系统。十进制
    的头像 发表于 12-20 17:05 1380次阅读

    十进制、十六进制二进制数制的区别

    计算机内部一般也是8位的倍数(8位= 1字节),所以每个字节可以方便地用2个十六进制数字表示。对于工程师来说,这比长的二进制数字序列更容易处理,但是计算机内部仍然是以2为基数的二进制
    的头像 发表于 11-28 10:45 1733次阅读
    <b class='flag-5'>十进制</b>、十六<b class='flag-5'>进制</b>和<b class='flag-5'>二进制</b>数制的区别

    二进制数据及取值范围的计算方法

    本文介绍二进制数据的相关知识,如定义、取值范围计算、转换十进制的方法以及一些常见位数的二进制数据的取值范围等。
    的头像 发表于 11-08 15:48 1919次阅读
    <b class='flag-5'>二进制</b>数据及取值范围的计算方法