เหตุใดเราจึงเพิ่ม 6 ในการเพิ่ม BCD


10

บางครั้งหากผลรวมของตัวเลขสองหลักคือ <10 การเพิ่ม BCD จะคล้ายกับการเพิ่มแบบไบนารี

แต่บางครั้งถ้าผลรวม> 9 ผลลัพธ์ต้องได้รับการแก้ไข การแก้ไขนี้คือ + (0110)

ทำไมเราจึงบวก 6 ทำไมไม่ใช้หมายเลขอื่นล่ะ? ฉันค้นหาเว็บ แต่ไม่เข้าใจ


หากคุณต้องการลิงค์ของคำถามนี้ที่มีการถามในอดีต:


คำตอบ:


20

เลขฐานสองสี่หลักนับได้สูงสุด 15 (1111) แต่ใน BCD เราจะใช้การแทนถึง 9 (1001) เท่านั้น ความแตกต่างระหว่าง 15 และ 9 คือ 6 ถ้าคุณต้องการ 9 + 1 เพื่อผลิต 10 ซึ่งก็คือ 1 0000 คุณต้องบวก 6 เพื่อทำ 1010 wrap เป็น 1 0000

หากคุณเพิ่มนาทีคุณจะเพิ่ม 40 ในเวลาที่เกิน 59 นาทีในทำนองเดียวกัน ตัวอย่าง: 45 นาทีบวก 35 นาทีคือ 80 นาที แก้ไขเพิ่ม 40 เพื่อสร้าง 120 ตอนนี้แทรกโคลอน: 1:20 หนึ่งชั่วโมงยี่สิบนาที 40 คือความแตกต่างระหว่าง 100 และ 1:00


2
มีมากเกินไป upvotes สำหรับชัดเจนและเฉพาะที่เล็กน้อย! ทำไมพวกคุณไม่พบคำตอบการออกแบบอิเล็กทรอนิกส์ที่ยากซึ่งไม่มี 11 upvotes และให้มัน
Kaz

2
โอเคการลงคะแนนใหม่นั้นชัดเจนเพื่อเพียงแสดงความคิดเห็นของฉัน
Kaz

1
ชาวบ้านกำลังทำปฏิกิริยากับคุณตอนนี้คุณกำลังลงไปตามเส้นทางต่อต้านที่โง่เขลา - การตอบโต้ด้วยการลงคะแนน heh heh
Andy aka

1

มันหมายถึงการเป็นตัวแทนตัวเลขที่สมบูรณ์สอง

https://en.wikipedia.org/wiki/Two%27s_complement

เมื่อคุณต้องการลบ B จาก A (A - B) เราสามารถเพิ่ม (-B) ไปยัง A หรือ (A + (- B))

หากผลรวม> 10 เราจำเป็นต้องมีผลรวมอย่างน้อย 4 หลักสำหรับการแทน BCD ดังนั้นเราควรลบ 10 จากผลรวม

ส่วนประกอบ 2 ของ 10 ใน 5 บิตคือ (สิบ = 01010) ดังนั้นเมื่อเราต้องการลบ 10 จากตัวเลขเราสามารถเพิ่ม (-Ten) ไปยังหมายเลข

การเพิ่ม BCD นั้นเหมือนกับไบนารีแอดเดอร์ 4 บิตซึ่งหมายความว่าเราต้องการ 4 บิตที่สำคัญน้อยที่สุดของ (-Ten) {0110 = # 6} เพื่อเพิ่มลงในผลรวม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.