二進制編碼十進制
二進制編碼十進制[註 1](英文:binary-coded decimal),簡稱 BCD,係一種喺二進制框架下表示十進制數字嘅方法。方法係所有十六進制(24 進)下可以理解成十進制嘅數字全部理解成十進制[1][2],其他唔可以理解成十進制嘅數值唔用[1];例如十六進制嘅 10(一零,正常數值十六)代表十、十六進制嘅 38(三八,正常數值五十六)代表卅八等等。
BCD 有兩個明顯嘅缺點:一係嘥位,其次係慢[3];喺機械語言,用 BCD 做運算可能會好麻煩,但係有啲處理器有特別嘅指令或者其他機制處理[4][5]。
變體
編輯Unpacked BCD
編輯BCD 字面上只係話要喺二進制框架之下,冇話一定要用四個位元;有啲處理器會可以用成個位元組嚟表示一個十進制數字,叫 「分拆式二進制編碼十進制」[暫譯](unpacked BCD),之前講嘅方法就叫 「包裹式二進制編碼十進制」[暫譯](packed BCD)[6][7];例如十六進制嘅 01 00(零一零零,即係兩個位元組 1、0,假設次序係高位元組、低位元組,正常數值係二百五十六)代表十、十六進制嘅 03 08(零三零八,即係兩個位元組 3、8,正常數值七百七十六)代表卅八等等。
如果一個位元組有 n 個位元(n 通常係 8),呢個做法可以理解成用 2n 進制表示十進制數字。
2421 碼
編輯之前最初定義嘅 BCD 喺電機工程(同電腦科學討論低層次嘅細節嗰陣)又叫 8421 碼[8],意思係由左到右嘅位元 3、2、1、0 分別代表 8、4、2、1,亦即係數學上嘅正常定義。如果位元 3 唔係代表 8 而係代表 2,就可以得出第個表示方法;喺電機工程,用呢種方法嘅其中一種特定編碼叫 2421 碼[8]。
除咗 2421 碼之外,電機工程亦有 Excess-3 同 Gray 另外兩種碼,都係用嚟表示十進制數字[8]。
註
編輯- ↑ 譯名見:科技教育組 (2023)
參考資料
編輯- ↑ 1.0 1.1 Zaks (1980), p. 27
- ↑ Roland & Langer (2013), p. 4
- ↑ Zaks (1980), p. 29
- ↑ Zaks (1980), p. 64–68
- ↑ Dandamudi (1998), pp. 8–10
- ↑ Zaks (1980), p. 28
- ↑ Dandamudi (1998), p. 3
- ↑ 8.0 8.1 8.2 Sachdev (n.d.), p. 15
參考書目
編輯- 科技教育組 (2023年1月)。〈中學資訊及通訊科技科常用英漢辭彙〉 (PDF) (香港中文)。香港特別行政區政府教育局課程發展處。喺2023年10月30號搵到。
- Dandamudi, S. (1998). "ASCII and BCD Arithmetic" (PDF) (加拿大英文). 卡爾頓大學. 喺2024年9月6號搵到.
- Roland, Michael; Langer, Josef (2013). Cloning Credit Cards: A combined pre-play and downgrade attack on EMV Contactless (PDF). 7th USENIX Workshop on Offensive Technologies (WOOT ’13) (美國英文). Washington, DC. 喺2024年9月6號搵到.
- Sachdev, M. (n.d.). "Number System" (PDF) (加拿大英文). 滑鐵盧大學. 喺2024年9月6號搵到.
- Zaks, Rodnay (1980). Programming the 6502 (美國英文) (第3版). Berkeley, CA: Sybex.