BCD码借用十六进制形式表示引出的单片机存储数据,数据数制,数据类型,数据编码分析

单片机存储数据都是二进制存储的。

数据数制:二进制、十进制、十六进制等。

数据类型:字符类型(一个字节)、整型(两个字节)、浮点类型(四个字节)。有无符号。

数据编码:8421码,ASCII码,LED等显示字形编码。

BCD码借用十六进制形式表示,只是意义不同24H写到寄存器里面也是24H,读出的也是24H,只不过代表的是十进制的24,而不是十进制的36.书写形式和十六进制一样,但是代表的十进制数就不一样了

对类似DS1302中寄存器的操作,虽然存放的数据是以BCD编码的意义,但是对这类寄存器的读写操作也是以二进制或者以十六进制形式表示的二进制数进行的,读写的字节数字仍然是十六进制的数,但是表示的意义却不是字面的十六进制数据,而是BCD编码的数据。例如上段的24H实例

(24)10进制-----(18H)十六进制-----(24H)十六进制表示的BCD码,代表十进制的24

//uchar BCD_TO_Decimal(uchar t_bcd)
//{    
//    uchar temp;
//    temp =  ((t_bcd >> 4)*10 + (t_bcd & 0x0f));    
//    return temp;
//
//
//}
//uchar Decimal_TO_BCD(uchar t_dec)
//{    
//    uchar temp;
//    temp =  (((t_dec/10) << 4) + (t_dec%10));    
//    return temp;
//
//
//}

函数中的左右移动4位,代表的意义不是除以16进制的模(虽然和除以16进制的模结果效果一样)十六进制数转换,只是取高4位的值

发布了110 篇原创文章 · 获赞 119 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_25814297/article/details/105090262