十進制與BCD碼轉換的算法


十進制與BCD碼轉換的算法

BCD碼

BCD是指用二進制來表示十進制數的編碼,即用4位二進制來表示一位十進制數,因此4位二進制數表示最大的十進制數9(1001),只取十六個數中的十個數。

比如:

BCD碼:0x99(153),該BCD碼轉換成十進制是99.
算法原理

十進制是逢十進一,而十六進制是逢十六進一,它們之間的每次進位差66,所以一個十進制數要轉換成BCD碼,要先算清多進位的位數,比如,十進制9999進位了99/10=999/10=9次,每次進位和十六進制進位相比差66,所以一共差了9×6=549×6=54,即99+54=15399+54=153(BCD)。BCD碼轉化成十進制碼也一樣。

代碼

static uint8_t BCD2DEC(uint8_t bcd)  
{  
    return (bcd-(bcd>>4)*6);`
}

static uint8_t DEC2BCD(uint8_t dec)  
{  
    return (dec+(dec/10)*6);`

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM