Binary Coded Decimal (BCD) Code หรือ 8421 BCD Code
เป็นรหัสเลขฐานสอง 4 บิต ที่นำมาใช้แทนเลขฐานสิบแต่ละหลัก ( Digit) ปกติเลขฐานสอง 4 บิต จะมี 16 จำนวน (0000 2 – 1111 2 ) ซึ่งสามารถแทนเลขฐานสิบได้ตั้งแต่ 0 – 15 แต่การใช้งานในรหัส BCD จะใช้รหัสเลขฐานสองแทนเลขฐานสิบตั้งแต่ 0 – 9 เท่านั้น และเลขฐานสิบหนึ่งหลัก จะใช้เลขฐานสอง 4 บิต ดังตารางข้างล่างนี้
Decimal |
Binary | BCD |
0 |
0000 | 0000 |
1 |
0001 | 0001 |
2 |
0010 | 0010 |
3 |
0011 | 0011 |
4 |
0100 | 0100 |
5 |
0101 | 0101 |
6 |
0110 | 0110 |
7 |
0111 | 0111 |
8 |
1000 | 1000 |
9 |
1001 | 1001 |
ตัวอย่าง: เปลี่ยน 5763 10 ให้เป็นรหัส BCD 5763 10 = 0101 0111 0110 0011 หมายเหตุ : จะแทนเลขฐานสิบแต่ละหลักด้วยเลขฐานสอง 4 bit |
ตัวอย่าง : Convert the number 9630 10 to its BCD equivalent. (Ans 1001 0110 0011 0000BCD) |
รหัส BCD code เป็นรหัสที่เข้าใจได้ง่าย แต่ประสิทธิภาพจะด้อยกว่ารหัสฐานสองโดยตรง
ลองพิจารณาเลขฐานสิบ ตั้งแต่ 0000 10 to 9999 10
คำถาม ก. ถ้าเขียนเป็น รหัส BCD จะต้องใช้ทั้งหมดกี่บิต
( Ans 16 bits (4 bits/digit) )
ข. ถ้าเขียนเป็นเลขฐานสองโดยตรงจะต้องใช้ทั้งหมดกี่บิต
( Ans 13 bits )
การคำนวณด้วยรหัส BCD
การบวกเลขรหัส BCD ให้บวกเหมือนเลขฐานสองปกติ แต่ถ้าผลบวกของทั้งสองหลักมากกว่า 9 จะต้องบวกเพิ่มอีก 6 (0110 2 ) ผลลัพธ์จึงจะถูกต้อง กรณีที่ผลลัพธ์ของทั้งสองหลักมากกว่า 9 จะเป็นได้เมื่อ
1. 4-bit บวกกันแล้วได้ค่ามากกว่า 9 (1010 2 ถึง 1111 2 = 10 10 ถึง 15 10 ) |
2. มีตัวทดจากการบวกของ 4-bit ( ผลรวมจาก 16 10 ถึง 18 10 ) |
Add 45 10 to 32 10 using BCD arithmetic
25 10 | 0010 0101 | BCD |
34 10 | 0011 0100 | BCD |
59 10 | 0101 1001 | BCD |