编程中进制转换的疑问

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:08:49
年月日时分秒,BCD码 021127212901
就是用021127212901来代表时间 是BCD码表示的
可是我有2点疑问
1 BCD码不是指二进制的0和1吗 怎么有其他的
2 这个代表的时间到底是要怎么换算的啊。。

BCD码的本质是用4位二进制数来表示一位十进制数,所以021127212901就是:0000 0010 0001 0001 0010 0111 0010 0001 0010 1001 0000 0001。由于8位二进制数是一个字节,写成字节形式的十六进制数就是:02 11 27 21 29 01。所以换算起来很简单的。即:

unsigned char int2bcd(unsigned char n)
{
    return (n / 10) * 16 + n % 10;
}