BCD碼與十六進製制值轉換

2021-10-20 17:40:45 字數 828 閱讀 7867

bcd碼中最常用的就是8421型bcd碼數值, 儀器為例使用以下方法進行轉換:

// bcd 碼 轉 十進位制

#define bcd_to_decimal(x) ((((x) & 0xf0) >> 4) * 10 + ((x) & 0x0f))

// 十進位制 轉 bcd 碼

#define decimal_to_bcd(x) ((((x) / 10) << 4) + ((x) % 10))

/**

* \brief 十六進製制轉bcd 用於把時間轉換成底板的時間格式

* * \param[int] hex 輸入十六進製制

* \return unsigned char 輸出bcd碼

*/unsigned

char

hex_to_bcd

(unsigned

char hex)

/** * \brief bcd時間格式轉16進製制格式 用於把底板的時間轉換成16進製制

* * \param[int] bcd 輸入bcd碼

* \return unsigned char 輸出16進製制

*/unsigned

char

bcd_to_hex

(unsigned

char bcd)

兩者各有優劣:

巨集函式速度更快;

巨集函式資源消耗更少;

巨集函式不支援表示式代入, 會出現錯誤;

巨集函式占用的**量更大, 如果呼叫的地方很多, 會導致比使用函式應用大小較大;

啥是 bcd 碼?

c 轉bcd碼 BCD碼 十六進製制與十進位制互轉

在做嵌入式軟體的設計中,經常會遇到十六進製制 bcd碼與十進位制之間的轉換,最近做m1卡的應用中,涉及了大量的十六進製制 bcd碼與十進位制之間的轉換。筆者通過對bcd碼 十六進製制 權的理解,輕鬆的實現了他們之間的互換。include include 功能 二進位製取反 輸入 const unsi...

BCD碼 十六進製制與十進位制互轉

在做嵌入式軟體的設計中,經常會遇到十六進製制 bcd碼與十進位制之間的轉換,最近做m1卡的應用中,涉及了大量的十六進製制 bcd碼與十進位制之間的轉換。筆者通過對bcd碼 十六進製制 權的理解,輕鬆的實現了他們之間的互換。include include 功能 二進位製取反 輸入 const unsi...

BCD碼 十六進製制與十進位制互轉

在做嵌入式軟體的設計中,經常會遇到十六進製制 bcd碼與十進位制之間的轉換,最近做m1卡的應用中,涉及了大量的十六進製制 bcd碼與十進位制之間的轉換。筆者通過對bcd碼 十六進製制 權的理解,輕鬆的實現了他們之間的互換。include include 功能 二進位製取反 輸入 const unsi...