0
我在寫庫爲RTC模塊的Arduino其中數據存儲在BCD。我知道如何將十進制數轉換爲BCD,但在編程編寫時遇到了一些問題。在搜索互聯網後,我得到了兩個公式,它們如下,並且工作完美,但無法理解它是如何計算的。BCD到十進制和十進制到BCD
1.一級方程式
DEC爲BCD
(value/10 * 16) + (value % 10)
例
DEC - > 40其轉換爲在BCD這又等於64.
所以,如果我把公式放在公式中,我會得到相同的結果。
(40/10 * 16) + (40%10)
= (4*16) + 0
= 64
BCD到DEC
(value/16 * 10) + (value % 16)
2. Formula2
DEC爲BCD
val + 6 * (val/10)
BCD到DEC
val - 6 * (val >> 4)
如果有人能詳細解釋它,它會有所幫助。
感謝所有提前。