佳途自动化学院论坛

 找回密码
 立即注册
搜索
热搜: 活动 discuz
查看: 11060|回复: 4

什么是BCD吗?求大白话讲解

[复制链接]

860

主题

1626

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10929
 楼主| 发表于 2021-2-21 10:29:25 | 显示全部楼层 |阅读模式
有例子吗?真正做项目的时候,用的多吗
回复

使用道具 举报

2

主题

9

帖子

45

积分

新手上路

Rank: 1

积分
45
发表于 2021-2-22 10:29:44 | 显示全部楼层
可以看课程:https://edu.jiatuxueyuan.com/course/1610

从第2.3到2.5节讲解,看完要做练习加深印象和理解,明白了吗
回复

使用道具 举报

10

主题

28

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2021-2-22 11:48:23 | 显示全部楼层
西门子官网也有解释,参考链接:http://www.xmzgk.com/zh/articledetail.aspx?detailid=852
BCD意为“二进制编码的十进制数”。BCD是一种编码方式,是以二进制数对十进制数字的编码,并因为16进制的优势,改用十六进制数字表示。

首先了解什么是编码,它的定义:用若干位码元一定规律排列起来表示给定信息的过程成为编码。

关于编码可分为以下三类:

BCD编码,简称二-十进制编码,BCD(Binary Coded Decimal)
BCD编码需要4位二进制码元表示1位十进制数(0~9)?为什么是4位,因为4位可以表示16个信息,而3位表示8个信息,所以选择4位就足够表示0~9这10个信息状态;所以是用二进制去表示10进制的符号,所以叫BCD编码;

下图是BCD码表:

常用BCD码
十进制数        8421码        5421码        2421码        余3码        余3循环码
0        0000        0000        0000        0011        0010
1        0001        0001        0001        0100        0110
2        0010        0010        0010        0101        0111
3        0011        0011        0011        0110        0101
4        0100        0100        0100        0111        0100
5        0101        1000        1011        1000        1100
6        0110        1001        1100        1001        1101
7        0111        1010        1101        1010        1111
8        1000        1011        1110        1011        1110
9        1001        1100        1111        1100        1010

其中5421码,例如6是用1001来表示,是因为高位的1代表的是5,所以6就是5+1的1000和0001相加因而得到1001。
那么为什么会出现5421码这种BCD编码呢,是因为在可以用到高位的时候,我们尽量的用权位比较高的来进行编码作为前提。例如5,用8421码的表示方式是0101,而用5421码的表示方法是1000。这样用最高位的1即可表示5而不需要占用两位。

同理,2421编码也是采用权位比较高的来进行编码作为前提,这样6的表示方式(相对于8421码的0110)则为1100,即用最高位的2和此高位的4表示。

另外2421码具有镜像对称的特点,即在4与5之间画镜像对称线,可发现4与5 3与6 0与9等镜像互补对称,所以2421码又称为自补代码
。例如4 - 0100 , 5 - 1011,0 - 0000 , 9 - 1111。(参照上表)

余3码,(无权位),可理解为10进制的3-12这10种状态用2进制表示,即把0 1 2 这三个数字不做考虑。因此0在余3码中用0011来表示(即10进制里面的3),9在余3码中用1100(即10进制里面的12)来表示。同样余3码也是自补代码(镜像对称特性 )。

余3码的由来即是因为其具有镜像对称特性而创造的,因为8421码的中间位置(4与5之间)不具备镜像对称,它的镜像对称线在7和8之间,所以要把镜像对称线移动3次,因此这是余3码的由来。

无论是以上那种编码规则,每一种编码只用了其中10中状态 (2的4次方=16)。8421码跟二进制数一样。其他编码方式参照权位或无权位的余3码。







回复

使用道具 举报

860

主题

1626

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10929
 楼主| 发表于 2022-6-7 12:16:02 | 显示全部楼层
本帖最后由 雷锋不是我 于 2022-6-7 12:21 编辑

1、BCD码,就是二进制与十进制数值的一种转换编码方式,只是一套规则,记住,它就是一套规则,国有国法,家有家规,记住,是规则!

2、在计算机中都是2进制来保存数据,因此要把一个10进制数据转换成2进制,才能保存在计算机中。这句话没毛病,没学过计算机的同学,记住就行!你可以拿笔在纸上写下12345,但是电脑不行,电脑必须把这个10进制的12345转换为二进制,才能用存储芯片,存储起来,这些都是几十年前科学家发明的科技技术。

3、但是!!!但是!!!10进制跟2进制之间转换很麻烦。一般非专业人士根本记不住!

4、而BCD码就是解决这个问题的。BCD码就是把10进制数的每1位都用4位的二进制表示,比如十进制数字28,它的BCD码是0010 1000,转换的时候只要计算0~9之间转换,因此非常的方便,口算就可以算出来了。

5、再比如十进制数字12345,它的BCD码就是 0001 0010 0011 0100 0101,简单方便。

只要记住十进制的数字0-9,它的4位二进制形式分别是:

0000                对应数字0
0001                对应数字1
0010                对应数字2
0011                对应数字3
0100               
对应数字4
0101               
对应数字5
0110               
对应数字6
0111               
对应数字7
1000               
对应数字8
1001               
对应数字9

就行了,这是最简单的,只要记住就行了。这几个对应形式,就算拿个纸和笔,抄下来也能用来对照着查找啊,我感觉小学生都会!

所以,如果给你一个十进制数字 57832,请问它的BCD码是多少?简单啊,对照着来,去上面的表格中对应看数字5,数字7,数字8,数字3,数字2,它们对应的4位二进制分别是多少?

所以最终正确答案是:
0101 0111 1000 0011 0010,就是对照上面的表抄下来就行了,你还看不懂吗,再看不懂我也没办法了,多看几遍吧

回复

使用道具 举报

860

主题

1626

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10929
 楼主| 发表于 2022-6-7 12:21:57 | 显示全部楼层
通过上面的例子,是不是感受到了:

BCD码,就是二进制与十进制数值的一种转换编码方式,只是一套规则,记住,它就是一套规则,国有国法,家有家规,记住,是规则!我担心还是有人不理解,那就再强调一下,这套规则是什么,规则就是:

0000                对应数字0
0001                对应数字1
0010                对应数字2
0011                对应数字3
0100                对应数字4
0101                对应数字5
0110                对应数字6
0111                对应数字7
1000                对应数字8
1001                对应数字9
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|佳途自动化学院论坛 ( 苏ICP备15005079号-3 )

GMT+8, 2024-3-29 17:02 , Processed in 0.096666 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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