电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

bcd码转二进制程序

2017-09-05 22:44分类:电子技术 阅读:

 

意义:用4位二进制数来标明数值中的1位(十进制数中的0~9这10个数字),简称BCD码,即BCD代码

也能够这么了解:即是将十进制的数以8421的办法翻开成二进制(14 以8421办法展现成二进制即是00010100 十进制标明即是20)

14的BCD码为20.

函数的效果即是把20成为14. 怎样把20成为14呢?从界说动身, 每一位用4位二进制标明.那就把BYTE的前4位*10,加上后四位即可。经过景象看实质。就这句话。

bcd码是四位二进制码, 也即是将十进制的数字转化为二进制, 可是和通常的转化有一点纷歧样, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应联络如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来标明 10 标明为00010000 也即是BCD码是遇见1001就发作进位,不象通常的二进制码,到1111才发作进位10000

/******************************************************************************
* Function : bcd2val
* Description : Convert one BYTE packed BCD to binary value.
* Input : bcd; // one BYTE packed BCD.
* Return : binary value.
* Note : N/A
* Globals Changed : N/A
******************************************************************************
*/
DWORD bcd2val(BYTE bcd)
{
return ((bcd>>4)*10 + (bcd & 0x0f));
} /* bcd2val */

bcd2val(20)=

(1)、 00010100>>4=00000001

(2)、 1*10=10

(3)、 bcd&0x0f=00000100

(4)、10+4=14 十六进制标明为e

把word型的数据(BCD)也改换成二进制值。

DWORD bcd2bin(WORD bcdval)
{
return(bcd2val((BYTE)(bcdval/256))*100 + bcd2val((BYTE)(bcdval%256)));
}

除以256恰当于右移动8位,即把前一个字节转成二进制值,+后一个字节的BCD码值改换成二进制值。

BCD转成 二进制值输出 这个函数写的如同有疑问。
DWORD bcd2val(BYTE bcd)
{
return ((bcd>>4)*10 + (bcd & 0x0f));
}

假定用BCD码 20 赋值进入如同,没疑问。算出来的值为 14
假定用241去核算的话。算出来值是 151也是彻底精确的。 eg:

1、241的BCD码 的十进制值 为151 .

2、256的BCD码 十进制值是100 二进制为0X64

上一篇:平行板电容器与电动势公式

下一篇:STM32外部接连学习笔记

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部