十进制转BCD码,bcd码怎么换算十进制
今天有人问我如何将二维码转换成十进制码,其实很简单
BCD表示法是用四个二进制位表示一个十进制位。 也就是说,一个字节可以表示两个十进制位。 这是压缩的十进制表示,广泛使用。 最常见的是CMOS中的时间存储格式为BCD码格式。 更具体的写法去百度就知道了,其实我只知道上述情况。
如果知道BCD是如何表现的,转换也就容易了。 分别转换后4位和前4位进行合并即可。
例如15用BCD码表示为0001 0101
后4位的值是实现10进制数的后4位,前4位是前4位的值。 有这样一种高效的转换方法。 后4位前4位10 (上为2位的10进制数。
用c语言表达的话,也许我能理解上述的意思
#包含主(语音) )。
{
/**15BCD码,0001 0101 **/
int bcd=0x15;
int dec;
dec=(BCD15 ) ) bcd4) * 10 );
printf(%d(n )、dec );
返回0;
}
因此,实际转换可以定义为宏
#definebcdtodec(BCD ) )。
例如
#include#definebcdtodec(bcd ) (bcd )=) (bcd ) 15 ) ) (bcd )4) * 10 )
输入主(语音) )。
{
/**15BCD码,0001 0101 **/
int bcd=0x15;
卡介苗(卡介苗;
printf(%d(n )、bcd );
返回0;
}