อ่าน 6 นาที
ส่วนเกิน-3
เลขคณิตไบนารี/ระบบตัวเลข/เปลี่ยนทางจากชื่ออื่น
รหัส Excess-3 , 3-excess หรือ รหัส ไบนารี10-excess-3 (มักย่อเป็นXS-3 , 3XS หรือX3 ) รหัส ไบนารีแบบเลื่อนหรือรหัส Stibitz (ตั้งชื่อตามGeorge Stibitz ,...
ส่วนเกิน-3
| รหัสสติบิตซ์ | |
|---|---|
| ตัวเลข | 4 [ 1 ] |
| แทร็ก | 4 [ 1 ] |
| ค่าตัวเลข | 8 4 −2 −1 |
| น้ำหนัก | 1..3 [ 1 ] |
| ความต่อเนื่อง | หมายเลข[ 1 ] |
| วัฏจักร | หมายเลข[ 1 ] |
| ระยะทางขั้นต่ำ | 1 [ 1 ] |
| ระยะทางสูงสุด | 4 |
| ความซ้ำซ้อน | 0.7 |
| พจนานุกรม | 1 [ 1 ] |
| คอมพลีเมนต์ | 9 [ 1 ] |
รหัส Excess-3 , 3-excess [ 1 ] [ 2 ] [ 3 ]หรือ รหัส ไบนารี10-excess-3 (มักย่อเป็นXS-3 , [ 4 ] 3XS [ 1 ]หรือX3 [ 5 ] [ 6 ] ) รหัส ไบนารีแบบเลื่อน[ 7 ]หรือรหัส Stibitz [ 1 ] [ 2 ] [ 8 ] [ 9 ] (ตั้งชื่อตามGeorge Stibitz , [ 10 ]ผู้สร้างเครื่องบวกเลขแบบรีเลย์ในปี 1937 [ 11 ] [ 12 ] ) เป็นรหัส ไบนารีโค้ดเดซิเมล (BCD) และระบบตัวเลขแบบเสริมตัวเองเป็นการแสดงผลแบบมีอคติ รหัส Excess-3 ถูกใช้ในคอมพิวเตอร์รุ่นเก่าบางเครื่อง รวมถึงเครื่องคิดเงินและเครื่องคิดเลขอิเล็กทรอนิกส์แบบพกพาในช่วงทศวรรษ 1970 และการใช้งานอื่นๆ อีกมากมาย
การเป็นตัวแทน
รหัสไบแอส (Biased codes) เป็นวิธีหนึ่งในการแสดงค่าโดยใช้จำนวนบวกและลบที่สมดุลกัน โดยใช้ค่าN ที่กำหนดไว้ล่วงหน้า เป็นค่าไบแอส รหัสไบแอส (และรหัสเกรย์ ) เป็นรหัสที่ไม่ถ่วงน้ำหนัก ในรหัส Excess-3 ตัวเลขจะถูกแสดงเป็นตัวเลขทศนิยม และแต่ละหลักจะถูกแสดงด้วยสี่บิตโดยเป็นค่าของหลักนั้นบวกด้วย 3 (จำนวน "ส่วนเกิน")
- เลขฐานสองที่เล็กที่สุดแสดงถึงค่าที่เล็กที่สุด ( 0 − ส่วนเกิน )
- เลขฐานสองที่มากที่สุดแสดงถึงค่าที่มากที่สุด ( 2 N +1 − ส่วนเกิน − 1 )
| ทศนิยม | ส่วนเกิน-3 | สติบิตซ์ | บีซีดี 8-4-2-1 | ไบนารี | ส่วนขยายCCITT 3 ใน 6 [ 13 ] [ 1 ] | ส่วนขยายแฮมมิง 4 ใน 8 [ 1 ] |
|---|---|---|---|---|---|---|
| 0 | 0011 | 0011 | 0000 | 0000 | ... 10 | ... 0011 |
| 1 | 0100 | 0100 | 0001 | 0001 | ... 11 | ... 1011 |
| 2 | 0101 | 0101 | 0010 | 0010 | ... 10 | ... 0101 |
| 3 | 0110 | 0110 | 0011 | 0011 | ... 10 | ... 0110 |
| 4 | 0111 | 0111 | 0100 | 0100 | ... 00 | ... 1000 |
| 5 | 1000 | 1000 | 0101 | 0101 | ... 11 | ... 0111 |
| 6 | 1001 | 1001 | 0110 | 0110 | ... 10 | ... 1001 |
| 7 | 1010 | 1010 | 0111 | 0111 | ... 10 | ... 1010 |
| 8 | 1011 | 1011 | 1000 | 1000 | ... 00 | ... 0100 |
| 9 | 1100 | 1100 | 1001 | 1001 | ... 10 | ... 1100 |
ในการเข้ารหัสตัวเลข เช่น 127 นั้น เพียงแค่เข้ารหัสตัวเลขทศนิยมแต่ละหลักดังที่แสดงด้านบน ก็จะได้ (0100, 0101, 1010)
เลขคณิตแบบ Excess-3 ใช้อัลกอริทึม ที่แตกต่างจากเลข BCD หรือ เลขฐานสองแบบปกติที่ไม่เอนเอียงหลังจากบวกเลข Excess-3 สองหลัก ผลรวมดิบจะเป็น Excess-6 ตัวอย่างเช่น หลังจากบวก 1 (0100 ใน Excess-3) และ 2 (0101 ใน Excess-3) ผลรวมจะเป็น 6 (1001 ใน Excess-3) แทนที่จะเป็น 3 (0110 ใน Excess-3) เพื่อแก้ไขปัญหานี้ หลังจากบวกเลขสองหลักแล้ว จำเป็นต้องลบค่าไบแอสส่วนเกินออกโดยการลบเลขฐานสอง 0011 (เลขฐานสิบ 3 ในเลขฐานสองที่ไม่เอนเอียง) หากเลขหลักที่ได้น้อยกว่าเลขฐานสิบ 10 หรือลบเลขฐานสอง 1101 (เลขฐานสิบ 13 ในเลขฐานสองที่ไม่เอนเอียง) หาก เกิด การโอเวอร์โฟลว์ (carry) (ในเลขฐานสอง 4 บิต การลบเลขฐานสอง 1101 เทียบเท่ากับการบวก 0011 และในทางกลับกัน) [ 14 ]
ข้อได้เปรียบ
ข้อได้เปรียบหลักของการเข้ารหัสแบบ excess-3 เหนือการเข้ารหัสแบบไม่เอนเอียงคือ เลขฐานสิบสามารถเสริมด้วยเลขเก้า[ 1 ] (สำหรับการลบ) ได้ง่ายเหมือนกับเลขฐานสองที่สามารถเสริมด้วยเลขหนึ่ง : เพียงแค่กลับบิตทั้งหมด[ 1 ]นอกจากนี้ เมื่อผลรวมของเลขสองหลัก excess-3 มากกว่า 9 บิตตัวทดของตัวบวก 4 บิตจะถูกตั้งค่าเป็นสูง วิธีนี้ใช้ได้ผลเพราะหลังจากบวกเลขสองหลักแล้ว ค่า "ส่วนเกิน" 6 จะได้ผลลัพธ์เป็นผลรวม เนื่องจากจำนวนเต็ม 4 บิตสามารถเก็บค่าได้ตั้งแต่ 0 ถึง 15 เท่านั้น ส่วนเกิน 6 หมายความว่าผลรวมใดๆ ที่มากกว่า 9 จะเกิดการล้น (ทำให้เกิดตัวทดออก)
ข้อดีอีกประการหนึ่งคือ รหัส 0000 และ 1111 ไม่ได้ถูกใช้สำหรับตัวเลขใดๆ ความผิดพลาดในหน่วยความจำหรือสายส่งสัญญาณพื้นฐานอาจส่งผลให้เกิดรหัสเหล่านี้ นอกจากนี้ยังยากกว่าที่จะเขียนรูปแบบศูนย์ลงในสื่อแม่เหล็ก[ 1 ] [ 15 ] [ 11 ]
ตัวอย่าง
ตัวอย่างการแปลง BCD 8-4-2-1เป็น excess-3 ในภาษา VHDL :
entity bcd8421xs3 is port ( a : in std_logic ; b : in std_logic ; c : in std_logic ; d : in std_logic ;an : บัฟเฟอร์std_logic ; bn : บัฟเฟอร์std_logic ; cn : บัฟเฟอร์std_logic ; dn : บัฟเฟอร์std_logic ;w : out std_logic ; x : out std_logic ; y : out std_logic ; z : out std_logic ); end entity bcd8421xs3 ;โครงสร้างการไหลของ ข้อมูล ของสถาปัตยกรรมbcd8421xs3 เริ่มต้นโดยan <= ไม่ใช่a ; bn <= ไม่ใช่b ; cn <= ไม่ใช่c ; dn <= ไม่ใช่d ;w <= ( an และb และd ) หรือ( a และbn และcn ) หรือ( an และb และc และdn ); x <= ( an และbn และd ) หรือ( an และbn และc และdn ) หรือ( an และb และcn และdn ) หรือ( a และbn และcn และd ); y <= ( an และcn และdn ) หรือ( an และc และd ) หรือ( a และbn และcn และdn ); z <= ( an และdn ) หรือ( a และbn และcn และdn );สิ้นสุดสถาปัตยกรรมการไหลของข้อมูล; -- ของ bcd8421xs3ส่วนขยาย
| ส่วนขยาย 3 ใน 6 | |
|---|---|
| ตัวเลข | 6 [ 1 ] |
| แทร็ก | 6 [ 1 ] |
| น้ำหนัก | 3 [ 1 ] |
| ความต่อเนื่อง | หมายเลข[ 1 ] |
| วัฏจักร | หมายเลข[ 1 ] |
| ระยะทางขั้นต่ำ | 2 [ 1 ] |
| ระยะทางสูงสุด | 6 |
| พจนานุกรม | 1 [ 1 ] |
| คอมพลีเมนต์ | (9) [ 1 ] |
| ส่วนขยาย 4 จาก 8 | |
|---|---|
| ตัวเลข | 8 [ 1 ] |
| แทร็ก | 8 [ 1 ] |
| น้ำหนัก | 4 [ 1 ] |
| ความต่อเนื่อง | หมายเลข[ 1 ] |
| วัฏจักร | หมายเลข[ 1 ] |
| ระยะทางขั้นต่ำ | 4 [ 1 ] |
| ระยะทางสูงสุด | 8 |
| พจนานุกรม | 1 [ 1 ] |
| คอมพลีเมนต์ | 9 [ 1 ] |
- การขยายรหัส 3 ใน 6: รหัสส่วนเกิน 3 บางครั้งยังใช้สำหรับการถ่ายโอนข้อมูล จากนั้นมักจะขยายเป็นรหัส 6 บิตตามCCITT GT 43 หมายเลข 1 โดยที่ 3 ใน 6 บิตจะถูกตั้งค่า[ 13 ] [ 1 ]
- ส่วนขยายรหัส 4 ใน 8: ในฐานะทางเลือกแทนรหัสทรานซีฟเวอร์ของ IBM [ 16 ] (ซึ่งเป็นรหัส 4 ใน 8 ที่มีระยะแฮมมิงเท่ากับ 2) [ 1 ]ยังสามารถกำหนดส่วนขยายรหัส 4 ใน 8 ส่วนเกิน 3 เพื่อให้ได้ระยะแฮมมิงเท่ากับ 4 ได้ หากต้องถ่ายโอนเฉพาะตัวเลขฐานสิบเท่านั้น[ 1 ]
ดูเพิ่มเติม
- ไบนารีออฟเซ็ต , ส่วนเกินN , การแสดงผลแบบมีอคติ
- ส่วนเกิน-128
- รหัสสีเทาส่วนเกิน
- รหัสเกรย์ที่เลื่อน
- รหัสสีเทา
- รหัส m-of-n
- รหัสไอเคน
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ส่วนเกิน-3
รหัส Excess-3 , 3-excess หรือ รหัส ไบนารี10-excess-3 (มักย่อเป็นXS-3 , 3XS หรือX3 ) รหัส ไบนารีแบบเลื่อนหรือรหัส Stibitz (ตั้งชื่อตามGeorge Stibitz ,...
การเป็นตัวแทน
รหัสไบแอส (Biased codes) เป็นวิธีหนึ่งในการแสดงค่าโดยใช้จำนวนบวกและลบที่สมดุลกัน โดยใช้ค่า N ที่กำหนดไว้ล่วงหน้า เป็นค่าไบแอส รหัสไบแอส (และ รหัสเกรย์ ) เป็นรหัสที่ไม่ถ่วงน้ำหนัก ในรหัส Excess-3 ตัวเลขจะถูกแสดงเป็นตัวเลขทศนิยม และแต่ละหลักจะถูกแสดงด้วยสี่ บิต...
ข้อได้เปรียบ
ข้อได้เปรียบหลักของการเข้ารหัสแบบ excess-3 เหนือการเข้ารหัสแบบไม่เอนเอียงคือ เลขฐานสิบสามารถ เสริมด้วยเลขเก้า [ 1 ] (สำหรับการลบ) ได้ง่ายเหมือนกับเลขฐานสองที่สามารถ เสริมด้วยเลขหนึ่ง : เพียงแค่กลับบิตทั้งหมด [ 1 ] นอกจากนี้ เมื่อผลรวมของเลขสองหลัก excess-3...
ตัวอย่าง
ตัวอย่างการแปลง BCD 8-4-2-1 เป็น excess-3 ใน ภาษา VHDL :