✔ 最佳答案
二進碼十進數(Binary-Coded Decimal, 簡稱BCD, 大陸稱BCD碼或二-十進制編碼)是一種二進制的數字編碼形式。
這種編碼形式利用了四個位元來儲存一個十進位的數碼, 使二進制和十進制之間的轉換得以快捷的進行。這種編碼技巧, 最常用於會計系統的設計裡, 因為會計制度經常需要對很長的數字串作準確的計算。
相對於一般的浮點式記數法, 採用BCD碼, 既可保存數值的精確度, 又可免卻使電腦作浮點運算時所耗費的時間。
此外, 對於其他需要高精確度的計算, BCD編碼亦很常用。
最常用的BCD編碼, 就是使用"0"至"9"這十個數值的二進碼來表示。
這種編碼方式,稱為BSD8421, 除此以外, 對應不同需求, 各人亦開發了不同的編碼方法, 以適應不同的需求。
這些編碼, 大致可以分成有權碼和無權碼兩種:有權碼, 如 : 8421(最常用)、2421、5421… 無權碼, 如 : 餘3碼、格雷碼… 以下為三種常見的BCD編碼的比較。十進數 8421-BCD碼 餘3-BCD碼 2421-A碼 (M10)D C B AC3 C2 C1 C0a3 a2 a1 a000 0 0 00 0 1 10 0 0 010 0 0 10 1 0 00 0 0 120 0 1 00 1 0 10 0 1 030 0 1 10 1 1 00 0 1 140 1 0 00 1 1 10 1 0 050 1 0 11 0 0 00 1 0 160 1 1 01 0 0 10 1 1 070 1 1 11 0 1 00 1 1 181 0 0 01 0 1 11 1 1 091 0 0 11 1 0 01 1 1 1
格雷碼(循環碼)是任意兩個相鄰數的代碼只有一位二進制數不同的BCD碼, 它與奇偶校驗碼同屬可靠性編碼。
由於有各式各樣的BCD碼, 所以你所謂的非BCD碼並不成立, 你只有將其分類, 才能夠編碼與解碼。
以下是簡單的編碼器。
圖片參考:
http://sub.allaboutcircuits.com/images/quiz/03003x01.png
圖片參考:
http://sub.allaboutcircuits.com/images/quiz/03004x01.png
當然你也可以用二極管來配搭
圖片參考:
http://www.imefan.com/dzrm/UploadFiles_6100/200803/20080322165916276.jpg
圖片參考:
http://www.gauss.com.tw/logic/ch7/images/ssdff.gif
更加可以用機械式
圖片參考:
http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/BCD-Scheibe.png/120px-BCD-Scheibe.png
至於解碼器也有多種的設計
圖片參考:
http://macao.communications.museum/images/exhibits/2_18_6_3_chi.png
圖片參考:
http://macao.communications.museum/images/exhibits/2_18_6_2_chi.png
更加可以用二極體解碼器