BCD码进制转进制表格工具说明

2022-07-11 16:14:15   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《BCD码进制转进制表格工具说明》,欢迎阅读!
进制,表格,说明,工具,BCD

BCD (二 十进制码)

在一些数字系统中,如电子计算机和数字式仪器中,往往采用二进制码表示十进制数。通常,把用一组四位二进制码来表示一位十进制数的编码方法称作二─十进制码,亦称BCD码(Binary Code Decimal

4位二进制码共有16种组合,可从中任取10种组合来表示0910个数。根据不同的选取方法,可以编制出很多种BCD码,8421码,5421码,2421码,5211码和余3码。B1101列出了这几种BCD码,其中的8421 BCD码最为常用。

由于每一组4位二进制码只代表一位十进制数,因而n位十进制数就得用n4位二进制码表示。

【例1110】把十进制数369.74编成8421 BCD码。 解: 3 6 9 7 4 0011 0110 1001 0111 0100

∴(369.7410=(0011 0110 1001. 0111 0100BCD

B1101 常用BCD编码表

编码类型

8421

十进制数

0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 8421

0000 0001 0010 0011 0100 1000 1001 1010 1011 1100 5421





0000 0001 0010 0011 0100 0101 0110 0111 1110 1111 2421

0000 0001 0100 0101 0111 1000 1001 1100 1101 1111 5211

0000 0100 0101 0110 0111 1000 1001 1010 1011 1100

5421

2421

5211

3


BCD码转化

认识BCD编码

BCD编码是一种数字压缩存储编码,大家都知道一个字节有8个位,而数字09最多只需要使用4个位,如果用一个字节来存储一个数字相对就会有一定的浪费,尤其是在传输过程中,由此人们就想出了压缩的办法,于是BCD编码就产生了。

BCD编码将一个字节的8个位拆分成高4位和低4位两个部分,也就是说一个字节能存储两个数字。所以BCD的编码过程就是将数字压缩的过程,将两个字节的数字压缩成一个字节。反之,解码就是把一个字节的数字拆分为两个数字单独存放(大部分的处理都是按字节处理的)。 示例: 编码过程,将数字69进行BCD编码(注:BCD编码低位在前,后面将不再注释) 1. 69分别转换成二进制表示:600000110900001001),大家可以看到,最大的数字9也只要4个位,在传输过程中白白浪费了4个位;

2.69合并为一个字节,分别取69二进制编码的低4位,按照低位在前的原则,将9的低四位放前面6的低四位放后面得出新的字节二进制编码是10010110

3.完成编码过程,69BCD编码结果为10010110 解码过程:将69BCD10010110进行解码。

1.10010110的高4位与低4位拆分开,得到两个二进制数10010110 2.分别将10010110的前面补充40000得到两个8位的二进制数0000100100000110

3.因为编码时低位在前,所以我们将两个二进制数编排顺序为00000110 000010001

4.将二进制数转换为十进制得出解码结果为69(正确解码)。 PB中如何对BCD码进行解码

大家知道在PB中有二进制类型的变量blob,但要无法按位操作,那么我们如何进行BCD编码的数字进行解码呢?

我想大家都会不约而同的想到ASCII码,没错,就是她。ASCII就是数字和字符在计算机中存储的的值,她在PB中给我们呈现的并不是01组成的二进制数而是十进制数值。

BCD解码需要将一个字节的高4位和低4位进行拆分,那么我们怎么来使用十进制的ASCII编码做到呢?

因为PB不提供位运算所以我们只能自己写函数来做些简单的处理了,那又如何处理呢?

方法一:我们写函数将十进制的ASCII(单字节)转化为二进制的字符串,当然,如此一来你还要写一个将二进制字符串转换为10进制数字的函数,有兴趣的朋友可以尝试一下。

方法二:在我上次写的内容中已经提到了,就是借助十六进制来完成转换。大家仔细研究不难发现十六进制表示等同于将一个字节的内容高4位和低4位分别转换为十进制,如果不信你可以自己验算一下。这样我们就只需要写一个转换函数


了,将十进制数转换为十六进制字符串。转换后将十六串的两个字符位置对换(因为编码的时候低位在前)然后直接将这个串强制转换为数值型就得到了解码后的数值。(注:后面有一转换函数是网上一网友所写)

有了解码方法我们在读BCD码的地磅数据的时候就很容易处理了,因为我上次写过处理过程这里我只简单描述一下:

1.用二进制类型blob将串口(现在有的用usb口)的数据读出来;

2.blob强制转换为string,这样就把二进制流按8位存储格式编码了,也就是说BCD码在这个string中,不过是压缩格式; 3.string的每个字节都分割开来,然后分别译为ASCII编码,PB中有函数ASC 4.根据具体设备出厂参数识别string中状态位,校验位,数字位等的位置; 5.找到数字位进行BCD解码,方法如上; 6.完成解码,得到称量数据。




本文来源:https://www.dywdw.cn/c2039f822e60ddccda38376baf1ffc4ffe47e2a5.html

相关推荐
推荐阅读