当前位置:首页 > 技术心得 > 正文内容

BIN转BCD

xjtudll1个月前 (01-08)技术心得120

BCD代码,Binary-Coded Decimal‎,是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制数,使二进制和十进制之间的转换得以快捷的进行。常见BCD编码有8421 BCD码,2421 BCD码,余3码。我们要说的就是8421 BCD码与二进制的转换,为简便叙述,简称8421 BCD码为BCD码。

BCD与BIN对应编码关系如下:

十进制数字

BIN

BCD

0

0000

0000

1

0001

0001

2

0010

0010

3

0011

0011

4

0100

0100

5

0101

0101

6

0110

0110

7

0111

0111

8

1000

1000

9

1001

1001

10

1010

 

11

1011

 

12

1100

 

13

1101

 

14

1110

 

15

1111

 

对于二进制来说,大于1111 B就进位;对于BCD来说,是大于1001 B就进位。通俗的讲,BIN是逢16进1,BCD是逢10进1。

利用除法和求余实现BIN转BCD

这是一种非常容易理解的算法。利用除法和求余运算将每一位都提取出来。

例如:

325 ----> 0x 325 (BCD)

a = 325/100 = 3

b = (325%100)/10 = (325-a*100)/10 = 2

c = 325%100%10 = 325-a*100-b*10 = 5

这种算法对于没有乘除法指令的低速单片机来说,实现起来比较复杂,耗时较多。

反过来,要将BCD转成BIN时,先取出每一位,再分别与10,100,1000等相乘。

0x 325 ----> 325

a = 0x325>>8;

b = 0x325 >>4;

c = 0x325&0x00F

325=a*100+b*10+c

 利用加法实现BIN转BCD

BIN是逢16进1,BCD是逢10进一。

计算机里的数都是二进制表示的,对于任意一个十进制数,可以表示为:

对于BCD而言:

举例来说:

49 = 4*10 + 9

0x49 = 4*16+9 = 4*(10+6)+9 =49+4*6

325 = 3*100+2*10+5

0x325 = 3*256+2*16+5 = 3*(100+156)+2*(10+6)+5 = 3*156+2*6+325

实际应用中,最为常见的还是两位十进制到两位BCD之间的转换,即:

很明显:

反过来,要将BCD转成BIN,即

,有:

“移位,加3”算法实现BIN转BCD

这种算法通常用于cpld,fpga等

以8位BIN转3位BCD来说明算法流程:

1、左移二进制数

2、如果BCD码的某个部分>4,那么给该部分+3。例如,如果个位>4,则给个位+3。

3、如果左移了8次,转换结束;否则转向步骤1。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/699/

标签: 算法
分享给朋友:

“BIN转BCD” 的相关文章

Mac OSX LaunchPad图标删除

Mac OSX LaunchPad图标删除

近期,安装了Adobe Fireworks CS4,由于是英文版的,所以找了个汉化补丁,汉化后,在LaunchPad里就出现了一个莫名其妙的图标。“WangYu(长发)”,而且无法删除。如下图所示。 这个“WangYu(长发)”没有任何作用,打开后发...

金蝶K3采购订单序时簿过滤条件的执行状态分别是什么意思?

【概述】 未完全到货:【数量】-【收料数量】>0的单据 未完全入库:【数量】-【入库数量】>0的单据 未完全开票:【数量】-【开票数量】>0的单据 未完全付款:【价税合计】-【付款关联金额】>0的单据 完全付款: 【价税合计】-【付款关联金额】=0的单据...

Proteus网络标号自动加一

Proteus网络标号自动加一

在原理图界面,按A(切换到英文输入法),弹出如下窗口: 将PROPERTY=VALUE改成net=P0#,那么网络标号就会从P00开始自动加一,如图所示。...

PWM实现ADC和DAC

PWM实现ADC和DAC

一、PWM实现AD 利用普通单片机的2个IO及一个运算放大器即可实现AD转换电路,而且很容易扩展成多通道。其占用资源少,成本低,AD转换精度可以达到8位甚至更高,因此具有一定的实用价值。 图1 1.1 硬件电路说明 图一中“RA0”和“RA1”为单片机的两个I/O脚,分别将其设置为输出...

Multisim导入MOSFET模型

文章来源:NI官网->在Multisim里导入MOSFET 模型 原文网址:http://digital.ni.com/public.nsf/allkb/E1DA418DD7A5E4A1862574B800219513 问题: 如何在Multisim器件里导入以“.MODEL&rd...

Windows10 安装软件时提示 the error code is 2503/2502 错误解决办法

Windows10 安装软件时提示 the error code is 2503/2502 错误解决办法

问题内容:Windows10 安装软件时提示“ the error code is 2503/2502”错误代码分析原因:由于安装.msi格式的软件时,无法使用管理员身份运行,导致权限不够,从而引起2503/2502代码的错误解决方法:设置 C:\WINDOWS\TEMP的权限1、依次打开“ 我的电...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。