发表于:2004-11-02 13:12:00
楼主
BCD编码是一种数字压缩存储编码,大家都知道一个字节有8个位,而数字0到9最多只需要使用4个位,如果用一个字节来存储一个数字相对就会有一定的浪费,尤其是在传输过程中,由此人们就想出了压缩的办法,于是BCD编码就产生了。
BCD编码将一个字节的8个位拆分成高4位和低4位两个部分,也就是说一个字节能存储两个数字。所以BCD的编码过程就是将数字压缩的过程,将两个字节的数字压缩成一个字节。反之,解码就是把一个字节的数字拆分为两个数字单独存放(大部分的处理都是按字节处理的)。
===================================================================================
#include <stdio.h>
main()
{
unsigned char s1='7';
unsigned char s2='6';
unsigned char BCD=0;
printf("s1 = %c,s2 = %c\n",s1,s2);
BCD = (s1&0x0f)|(s2<<4);
printf("BCD = %x\n",BCD);
s1 = (BCD & 0X0F) | 0x30;
s2 = (BCD >> 4) | 0x30;
printf("s1=%c,s2=%c\n",s1,s2);
}