เลขฐานสิบเข้ารหัสฐานสอง

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire
ตารางการเปรียบเทียบระหว่างเลขฐานสิบกับบีซีดี
ตารางการเปรียบเทียบระหว่างเลขฐานสิบกับบีซีดี

เลขฐานสิบเข้ารหัสฐานสอง หรือ บีซีดี (Binary-coded decimal : BCD) เป็นระบบเลขที่ใช้เลขฐานสองจำนวนอย่างน้อย 4 บิตแทนเลขฐานสิบ 0 ถึง 9 ในแต่ละหลัก เพื่อความสะดวกในการแสดงผลจากการคำนวณด้วยคอมพิวเตอร์หรืออุปกรณ์อิเล็กทรอนิกส์ ตัวอย่าง เลขฐานสิบ 127 จะสามารถแปลงเป็นบีซีดีได้เป็น 0001 0010 0111 เป็นต้น

โดยพื้นฐานแล้วบีซีดีจะต้องมีบิตอย่างน้อย 4 บิตจึงจะแสดงผลออกมาได้ครบทั้ง 0-9 แต่ในทางปฏิบัติแล้วเมื่อนำบีซีดีไปคำนวณ เช่นการบวกหรือการลบ อาจจะต้องมีบิตอื่นเพิ่ม เพื่อใช้ในการทดเลขหรือการกำหนดเครื่องหมาย และเนื่องจากบีซีดีเป็นระบบเลขที่สร้างขึ้นเพื่อใช้งานในคอมพิวเตอร์และอิเล็กทรอนิกส์เป็นหลัก เลขในแต่ละบิตจึงสามารถเก็บอยู่ในหน่วยความจำได้

ประเภทของบีซีดี

คอมพิวเตอร์ในปัจจุบันได้กำหนดหน่วยของความจุไว้ว่า 1 ไบต์เท่ากับ 8 บิต นั่นหมายความว่าเราสามารถเก็บบีซีดีได้ 1-2 หลักต่อ 1 ไบต์ ถ้าเก็บ 2 หลักจะเรียกว่า "packed BCD" และถ้าเก็บหลักเดียวเรียกว่า "unpacked BCD" ซึ่งสามารถดึงค่าออกมาคำนวณง่ายกว่า แต่กินเนื้อที่มากกว่าแบบแรกเป็นเท่าตัว ตัวอย่างเช่น เลขฐานสิบ 2653 เมื่อแปลงเป็นรูปแบบ packed จะได้เป็น 0010 0110 0101 0011 (ใช้หลักละ 4 บิต) ในขณะที่รูปแบบ unpacked จะเป็น 00000010 00000110 00000101 00000011 (เติม 0 ในบิตที่เหลือจนครบ 8 บิต)

การบวกและการลบบีซีดี

การบวกและการลบบีซีดี สามารถกระทำได้เหมือนการบวกและการลบเลขฐานสอง แต่จะแตกต่างกันเล็กน้อยตรงที่เมื่อผลลัพธ์นั้นมีการทดไปหลักอื่น หรือบีซีดีมีค่ามากกว่า 9 ในหลักใดๆ จะต้องมีการปรับบีซีดีใหม่ให้ทุกหลักมีค่าเป็น 0-9 ดังเดิม

ตัวอย่าง หากต้องการหาผลลัพธ์ของ 237 + 282 ในรูปแบบบีซีดี สามารถกระทำได้ดังนี้

237 = 0010 0011 0111
282 = 0010 1000 0010 +
ผลบวก = 0100 1011 1001

จะเห็นว่าหลักสิบเป็น 1011 ซึ่งเท่ากับ 11 มีค่ามากกว่า 9 วิธีการปรับบีซีดีคือนำ 2's complement ของ 10 ไปบวกเข้ากับหลักนั้น (เปรียบเหมือนการลบด้วย 10) ซึ่งนั่นก็คือ 0110 แล้วนำบิตที่เกินไปบวกเพิ่มในหลักถัดไป

ผลบวก = 0100 1011 1001
ปรับบีซีดี = 0000 0110 0000 +
0100 0001 1001
ผลลัพธ์ = 0101 0001 1001

เราจะได้ว่า 237 + 282 = 519

สำหรับการลบเลขบีซีดีนั้นให้ทำเหมือนการบวก แต่ต้องเปลี่ยนตัวลบให้อยู่ในรูปแบบ 2's complement ทุกหลักเสียก่อน แล้วจึงบวกไปตามปกติ

ดูเพิ่ม

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net