bcd码转二进制程序.pdf
bcd码转二进制程序
意义:用4位二进制数来标明数值中的1位(十进制数中的
0~9这10个数字),简称BCD码,BCD代码
也能够这么了解:即是将十进制的数以8421的办法翻开成二进
制(14以8421办法展现成二进制即进制标明即是
20)
14的BCD码为20.
函数的效果即是把20成为14.怎样把20成为14呢?从界说动
身,每一位用4位二进制标明.那就把BYTE的前4位*10,加上后四位
即可。经过景象看实质。就这句话。
bcd码是四位二进制码,也即是将十进制的数字转化为二进制,可
是和通常的转化有一点纷歧样,每一个十进制的数字0-9都对应着一
个四位的二进制码,对应联络如下:十进制0对应二进制0000;十进制
1对应二进制000191001接下来的10就有两个上述的码来标明
10标明即是BCD码是遇见1001就发作进位,不象通
常的二进制码,到1111才发作进位10000
/******************************************************
************************
*Function:bcd2val
1
*Description:ConvertoneBYTEpackedBCDtobinaryvalue.
*Input:bcd;//oneBYTEpackedBCD.
*Return:binaryvalue.
*Note:N/A
*GlobalsChanged:N/A
*******************************************************
***********************
*/
DWORDbcd2val(BYTEbcd)
{
return((bcd4)*10+(bcd0x0f));
}/*bcd2val*/
bcd2val(20)=
(1)、000101004
(2)、1*10=10
(3)、bcd0x0f
(4)、10+4=14十六进制标明为e
把word型的数据(BCD)也改换成二进制值。
DWORDbcd2bin(WORDbcdval)
{
2
return(bcd2val((BYTE)(bcdval/256))*100+bcd2val((BYTE)(bcdval%25
6)));
}
除以256恰当于右移动8位,即把前一个字节转成二进制值,+
后一个字节的BCD码值改换成二进制值。
BCD转成二进制值输出这个函数写的如同有疑问。
DWORDbcd2val(BYTEbcd)
{
return((bcd4)*10+(bcd0x0f));
}
假定用BCD码20赋值进入如同,没疑问。算出来的值为14
假定用241去核算的话。算出来值是151也是彻底精确的。eg:
1、241的BCD码的十进制值为151.
2、256的BCD码十进制值是100二进制为0X64
3