BCD码转二进制

--write by zhuwx 2019-06-24 20:57:58 +0800 CST

点击量:22

这个转换之前是从未听说的,因为最近在看Linux的内核代码,发现Linux在设置系统时间的时候读入的是BCD码,需要进行一下二进制的转换,所以这里将Linux的转换源代码用自己的例子分享一下。

#include <stdio.h>
#define BCD_TO_BIN(val) (((val)&15)+(((val)>>4)*10))
int main()
{
	unsigned a = 17;	//0001 0001&0000 1111=0000 0001
	printf('%X
', a); 
	printf('%d
', BCD_TO_BIN(a));
	printf('%X
', 57&15);
	printf('%x
', (57>>4)*10);
}