2012-07-30 48 views
-2

我正在爲C程序創建BCD實用程序頭文件,並且找不到具有轉換公式的書。我需要幫助。有人知道一個好的嗎?我想製作自己的代碼而不是複製他人。有誰知道BCD實用程序頭文件轉換公式的好書或網站

// Converts one uint8_t of HEX digits or one uint8_t of 
// BCD digits into two ASCII characters. 
extern void BufAsc(char* pAscii, const uint8_t* pBuffer); 

// Converts several uint8_ts of HEX digits or several uint8_ts of 
// BCD digits into ASCII characters. 
extern void BfAscii(char* pAscii, const uint8_t* pBuffer, uint8_t NumBytes); 

// Converts a one digit HEX or BCD value to a one 
// uint8_t ASCII character 
extern char Ascii(uint8_t HexValue); 
+1

如果你只是想在普通的二進制表示和BCD之間進行轉換,那麼它非常簡單 - 參見例如https://en.wikipedia.org/wiki/Binary-coded_decimal – 2012-07-30 08:30:20

+0

'我想讓自己的代碼而不是複製別人^ _ ^「創建**和**調試?沒有意圖的進攻,但生活真的是** **太短了,爲什麼要重新發明輪子?特別是在這種普通的東西上?爲什麼不花一些現成的免費軟件來做家務,讓你自由地享受有趣的,具有挑戰性的東西?如果你想建一座房子,你從頭開始製作磚頭,或者只是購買它們?再次......沒有任何意圖。沙洛姆 – Mawg 2012-07-30 11:01:47

回答

1

這僅僅是一個例子:

unsigned char bcd_to_hex(unsigned char bcd_data) 
{ 
     /* Algorithm : you can edit and improve if you want 
     * convert BCD to HEX 
     * bcd_data = HHHHLLLL (binary representation), to convert this to Hex 
     * 0000HHHH * 1010(ten in decimal) + 0000LLLL 
     */ 

     return (bcd_data >> 4)*10 + (bcd_data & 0x0F); 
} 

您可以添加其他實用功能

hex_to_bcd 
bcd_to_decimal 
decimal_to_bcd 
bcd_adding 
bcd_substract 

您可以檢查此網址:

http://academic.evergreen.edu/projects/biophysics/technotes/program/bcd.htm 的http://主頁.cs.uiowa.edu /〜jones/bcd/bcd.html

我沒有記住一本書,其中包含有關BCD的所有公式和算法,但一些關於電子和微控制器編程的書籍可能包含一些有關這方面的信息。

希望得到這個幫助。

問候。

+0

謝謝!這幫了很多!:) – Nazareth 2012-07-30 10:51:22

相關問題