bcd码2进制转10进制表格工具+说明_第1页
bcd码2进制转10进制表格工具+说明_第2页
bcd码2进制转10进制表格工具+说明_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

BCD 码 (二 十进制码) 在一些数字系统中,如电子计算机和数字式仪器中,往往采用二进制码表示十进制数。 通常,把用一组四位二进制码来表示一位十进制数的编码方法称作二十进制码,亦称 BCD 码(Binary Code Decimal ) 。 4 位二进制码共有 16 种组合,可从中任取 10 种组合来表示 09 这 10 个数。根据不 同的选取方法,可以编制出很多种 BCD 码,如 8421 码,5421 码,2421 码,5211 码和余 3 码。表 B1101 列出了这几种 BCD 码,其中的 8421 BCD 码最为常用。 由于每一组 4 位二进制码只代表一位十进制数,因而位十进制数就得用 n 组 4 位二 进制码表示。 【例 1110】把十进制数 369.74 编成 8421 BCD 码。 解: 3 6 9 7 4 0011 0110 1001 0111 0100 (369.74) 10(0011 0110 1001. 0111 0100) BCD 表 B1101 常用 BCD 编码表 编码类型 十进制数 8421 码 5421 码 2421 码 5211 码 余 3 码 0 0000 0000 0000 0000 0000 1 0001 0001 0001 0001 0100 2 0010 0010 0010 0100 0101 3 0011 0011 0011 0101 0110 4 0100 0100 0100 0111 0111 5 0101 1000 0101 1000 1000 6 0110 1001 0110 1001 1001 7 0111 1010 0111 1100 1010 8 1000 1011 1110 1101 1011 9 1001 1100 1111 1111 1100 权 8421 5421 2421 5211 BCD 码转化 认识 BCD 编码 BCD 编码是一种数字压缩存储编码,大家都知道一个字节有 8 个位,而数字 0 到 9 最多只需要使用 4 个位,如果用一个字节来存储一个数字相对就会有一定 的浪费,尤其是在传输过程中,由此人们就想出了压缩的办法,于是 BCD 编码 就产生了。 BCD 编码将一个字节的 8 个位拆分成高 4 位和低 4 位两个部分,也就是说一个 字节能存储两个数字。所以 BCD 的编码过程就是将数字压缩的过程,将两个字 节的数字压缩成一个字节。反之,解码就是把一个字节的数字拆分为两个数字 单独存放(大部分的处理都是按字节处理的)。 示例: 编码过程,将数字 69 进行 BCD 编码(注:BCD 编码低位在前,后面将不再注释) 。 1. 将 6,9 分别转换成二进制表示:6(00000110)9(00001001),大家可以 看到,最大的数字 9 也只要 4 个位,在传输过程中白白浪费了 4 个位; 2.将 69 合并为一个字节,分别取 6,9 二进制编码的低 4 位,按照低位在前的 原则,将 9 的低四位放前面 6 的低四位放后面得出新的字节二进制编码是 10010110; 3.完成编码过程,69 的 BCD 编码结果为 10010110。 解码过程:将 69 的 BCD 码 10010110 进行解码。 1.将 10010110 的高 4 位与低 4 位拆分开,得到两个二进制数 1001 和 0110; 2.分别将 1001 和 0110 的前面补充 4 位 0000 得到两个 8 位的二进制数 00001001,00000110; 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.将 str

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论