BCD与HEX之间相互转换

发布者:SereneGardener最新更新时间:2016-11-23 来源: eefocus关键字:BCD  HEX  相互转换 手机看文章 扫描二维码
随时随地手机看文章

最近在做一个项目,用到这个东东,可是网上找到的一些相关函数还是有点错误,干脆自己写了一个,大家看能用就用吧。

 //Val_BCD的范围(<0x99,>0)

INT8U BCD2HEX(INT8U Val_BCD)

{

 INT8U temp;

 temp = Val_BCD&0x0F; //按位与,temp得到低四位数。

 Val_BCD >>= 4;             //右移四位,将高四位移到低四位的位置,得到高四位码值。

 Val_BCD &= 0x0F;         //防止移位时高位补进1,只保留高四位码值

 Val_BCD *= 10;              //高位码值乘以10

 temp += Val_BCD;         //然后与第四位码值相加。

 return temp;                   //将得到的十进制数返回

}

 

//Val_HEX的范围(<0xFF,>0)

INT16U HEX2BCD(INT8U Val_HEX)

{

    INT16U Val_BCD;

    INT8U temp;

    temp = Val_HEX%100;

    Val_BCD = ((INT16U)Val_HEX)/100<<8;

    Val_BCD = Val_BCD|temp/10<<4;

    Val_BCD = Val_BCD|temp%10;

    return Val_BCD;

}


关键字:BCD  HEX  相互转换 引用地址:BCD与HEX之间相互转换

上一篇:如何将BCD码转换成10进制码
下一篇:任意进制数转换为十进制数的C程序

推荐阅读最新更新时间:2024-03-16 15:21

烧录Hex文件到Silabs单片机
通常我们会用烧录器EC5或者EC6在Silabs IDE下载程序 但是有很多人会比较习惯用Keil生成Hex文件再烧录 其实这也是可以的 Silabs也提供了下载的工具 路径:C:SiLabsMCUUtilitiesProduction Programmer 下面有个exe文件:MCUProductionProgrammer.exe 打开后在program menu 下面有个config programming information 选项 进去如下所示 part number 处选择单片机型号,Hex file location选择hex文件所在位置 accept setting后 program d
[单片机]
STM32在线升级IAP-Hex文件和Bin文件的区别
1 - HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身 在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。 2- BIN文件格式 对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制数据。
[单片机]
PIC的HEX文件(校应和详解)
例如: :040000002CEF10F0E1 # 这里 E1 为校应码 python计算校应码(来验证校应码计算公式): 代码: # data 为hex某一行的字符串数据 def calc_checksum( data): sum = 0 result=0 print( 校应数据长度: ,len(data)) for i in range(0, len(data),2): sum = ((int(data , 16))+checksum ) result=(256-sum)&0xff return result 可以看到确实是0xE1,到此校验和算法验证成功。
[单片机]
PIC的<font color='red'>HEX</font>文件(校应和详解)
基于单片机的四位BCD编码器电路设计
1 引言 BCD码又称二/十进制码,即二进制编码的十进制码,在设计、测试数字电路硬件过程或是面对带有BCD码接口的集成电路时,常常希望方便、快速地产生BCD码来完成当前的工作,检验硬件电路的正确性,例如锁相频率合成集成电路MC145163P带有4位BCD编码接口,用于设置环路N分频器,通过本文介绍而制作完成后的BCD发生器可以提供4位BCD编码输出,方便地控制每位BCD输出,可以快速地得到BCD编码而完成测试或输出BCD编码接到集成电路的BCD编码接口,无需频繁跳线。 另外,BCD编码有8421码、2421码、余3码等多种形式,本文以常见的8421码为例介绍电路的实现和程序的编写。如果对程序略加修改则可以很方便地实现其
[单片机]
如何将BCD转换成10进制码
今天有人在问我BCD码如何转换成10进制码的问题,其实很简单 BCD 的表示法是 用4个二进制位来表示 一个十进制位,也就是一个字节能够表示2个十进制数位,这是一种压缩的十进制表示方式,应用很广,最常见的就是CMOS里的时间存放格式就是BCD码格式,更具体的表示方法大家可以去百度一下就知道了不过其实知道我上面说的就差不多了。 明白了BCD是怎么表示后转换也就容易了,低4位和高4位分别转换然后合并起来就是了! 如15用BCD码表示为 0001 0101 低四位的值就是实现十进制数的低四,高4位就是高四位的值,这样我们有很高效的转换方法:低四位+高四位×10 (上面是2位十进制数的) 用C语言
[单片机]
单片机HEX文件完全解读
HEX文件,是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示。以下是一个HEX文件的内容: :0E00030075801175902275A03375B04480FE93 :03000000020011EA :0C001100787FE4F6D8FD7581070200033B :00000001FF 解释:冒号为每行数据的开始符号;蓝色表示此行数据长度,十六进制,如0E就是14;红色是数据存放的地址,如0003;粉红色是表示数据类型,00表示数据记录,01表示文件结束,02表示扩展段地址记录,03表示开始段地址记录,04表示扩展线性地址记录,05表示开始线性地址记录;后面紧跟着的是N位数据
[单片机]
hex的反汇编文件译码及说明(获得函数地址)
avr单片机用C语言仿真软件编译之后生成hex文件,我们可以通过反汇编软件来还原汇编代码, hex反汇编软件 : 下载地址 (右键选择下载工具下载,比如迅雷下载) 以下是我做的一个实验,产生的《实验.hex》文件通过反汇编,之后得到的代码,其此函数的功能也就是获得每一个自定义的函数在flash里的地址,通过反汇编更能了解其数值返回过程,解读。 通过此上的反汇编实验,可以用来做 基于avr的多任务机制 点击衔接。 如下 ; reassembly of 实验.hex ; created by ReAVR V3.2.0 ; at 2010/01/31 - 19:38:25 ; for ICCAVR assembler ;-
[单片机]
PIC单片机的浮点数及其与十进制数之间的相互转换
摘 要重点说明浮点数的格式,十进制数与浮点之间的相互转换以及程序设计。 在我们设计的仪表中采用PIC系列单片机,碰到了浮点数的运算问题,查阅其有关资料发现,其浮点数的格式及其与十进制数之间的转换,与我们常用的MCS-51单片机所提供的三字节、四字节浮点数完全不同,本文将说明其浮点数的格式及其与十进制数之间的转换和程序设计步骤。 1 浮点数的格式 Microchip公司单片机所采用的浮点数格式是IEEE-754标准的变异型。32位浮点数格式为: 其中:×表示一位二进制数0或1;eb 为指数的偏差;S为浮点数的符号位,S=0为正数,S=1为负数;小数点“·”在符号位S的右边;BY0 BY1 BY2为尾数的小数部分。 应特别注意: ⑴
[单片机]
PIC单片机的浮点数及其与十进制数之间的<font color='red'>相互</font><font color='red'>转换</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved