กลับไปหน้าบทความ

อ่าน 6 นาที

ไม่มีชื่อบทความ

ใน คณิตศาสตร์ และ วิทยาการคอมพิวเตอร์ วิธี ส่วนเติมเต็ม เป็นเทคนิคในการเข้ารหัสช่วงสมมาตรของ จำนวนเต็ม บวกและลบ ในลักษณะที่สามารถใช้ อัลกอริทึม (หรือ กลไก ) เดียวกันสำหรับ การบวก..

วิธีเสริม

ตัวเลขส่วนเติมเต็มบนเครื่องคิดเลขประมาณปี 1910 ตัวเลขที่เล็กกว่า ซึ่งใช้ในการลบ คือส่วนเติมเต็มเก้าของตัวเลขที่ใหญ่กว่า ซึ่งใช้ในการบวก

ในคณิตศาสตร์และวิทยาการคอมพิวเตอร์วิธีส่วนเติมเต็มเป็นเทคนิคในการเข้ารหัสช่วงสมมาตรของจำนวนเต็ม บวกและลบ ในลักษณะที่สามารถใช้อัลกอริทึม (หรือกลไก ) เดียวกันสำหรับการบวกตลอดทั้งช่วง สำหรับจำนวนหลัก ที่กำหนด ครึ่งหนึ่งของการแสดงจำนวนที่เป็นไปได้จะเข้ารหัสจำนวนบวก อีกครึ่งหนึ่งจะแสดงถึงตัวผกผันการบวกของ จำนวนบวกนั้นๆ คู่ของจำนวนผกผันที่บวกกันได้เรียกว่าส่วนเติมเต็มดังนั้นการลบจำนวนใดๆ จึงทำได้โดยการบวกส่วนเติมเต็มของมัน การเปลี่ยนเครื่องหมายของจำนวนใดๆ จะถูกเข้ารหัสโดยการสร้างส่วนเติมเต็มของมัน ซึ่งสามารถทำได้โดยอัลกอริทึมที่ง่ายและมีประสิทธิภาพมาก วิธีนี้ใช้กันทั่วไปในเครื่องคิดเลขเชิงกลและยังคงใช้ในคอมพิวเตอร์ สมัยใหม่ แนวคิดทั่วไปของส่วนเติมเต็มฐาน  (ดังที่อธิบายไว้ด้านล่าง) ยังมีคุณค่าในทฤษฎีจำนวนเช่น ในทฤษฎีบทของมิดี

ส่วนเติมเต็มเก้าของจำนวนที่แสดงในระบบเลขฐานสิบนั้น เกิดจากการแทนที่แต่ละหลักด้วยเก้าลบด้วยหลักนั้น ในการลบจำนวนเลขฐานสิบy ( ตัวลบ ) จากจำนวนx ( ตัวตั้งลบ ) สามารถใช้ได้สองวิธี:

ในวิธีแรก จะนำค่าส่วนเติมเต็มเก้าของxมาบวกกับyจากนั้นจึงสร้างค่าส่วนเติมเต็มเก้าของผลลัพธ์ที่ได้ เพื่อให้ได้ผลลัพธ์ที่ต้องการ

ในวิธีที่สอง จะนำค่าส่วนเติมเต็มเก้าของyมาบวกกับxแล้วบวกหนึ่งเข้าไปในผลรวม จากนั้นจึงตัดเลข '1' ตัวซ้ายสุดของผลลัพธ์ทิ้ง การตัดเลข '1' ตัวซ้ายสุดทิ้งนั้นสะดวกเป็นพิเศษสำหรับเครื่องคิดเลขหรือคอมพิวเตอร์ที่ใช้จำนวนหลักคงที่ เพราะไม่มีที่สำหรับเลข '1' จึงหายไปในระหว่างการคำนวณ ค่าส่วนเติมเต็มเก้าบวกหนึ่งเรียกว่าค่าส่วนเติมเต็มสิบ

วิธีการของส่วนเติมเต็มสามารถขยายไปยังฐานตัวเลขอื่น ( ราก ) ได้ โดยเฉพาะอย่างยิ่ง ใช้ในคอมพิวเตอร์ดิจิทัลส่วนใหญ่เพื่อทำการลบ แสดงจำนวนลบในฐาน 2 หรือเลขคณิตไบนารีและทดสอบการล้นในการคำนวณ[ 1 ]

ส่วนเติมเต็มเชิงตัวเลข

ส่วนเติมเต็มเชิงรากของn{\displaystyle n}-เลขหลักy{\displaystyle y}ในราก{\displaystyle b}ถูกกำหนดให้เป็นny{\displaystyle b^{n}-y}ในทางปฏิบัติ การหาค่าคอมพลีเมนต์ฐานจะทำได้ง่ายกว่าโดยการเพิ่ม 1 เข้าไปในค่าคอมพลีเมนต์ฐานที่ลดลงซึ่งก็คือ(n1)y{\displaystyle \left(b^{n}-1\right)-y}แม้ว่าการคำนวณนี้จะดูยากพอๆ กับการหาค่าส่วนเติมเต็มฐาน แต่จริงๆ แล้วมันง่ายกว่า เนื่องจาก(n1){\displaystyle \left(b^{n}-1\right)}เป็นเพียงตัวเลขเท่านั้น1{\displaystyle b-1}ซ้ำn{\displaystyle n}คูณด้วยฐานสอง นี่เป็นเพราะว่า

n1=(1)(n1+n2+++1)=(1)n1++(1){\displaystyle {\begin{aligned}b^{n}-1&=(b-1)(b^{n-1}+b^{n-2}+\cdots +b+1)\\&=(b-1)b^{n-1}+\cdots +(b-1)\end{aligned}}}

(ดูสูตรอนุกรมเรขาคณิต เพิ่มเติม ) เมื่อทราบเช่นนี้แล้ว เราสามารถหาค่าส่วนเติมเต็มฐานที่ลดลงของจำนวนได้โดยการเติมเต็มแต่ละหลักโดยเทียบกับ1{\displaystyle b-1}กล่าวคือ การลบตัวเลขแต่ละหลักในy{\displaystyle y}จาก1{\displaystyle b-1}.

การลบของy{\displaystyle y}จากx{\displaystyle x}การใช้ส่วนเติมเต็มฐานที่ลดลงสามารถทำได้ดังนี้ บวกส่วนเติมเต็มฐานที่ลดลงของx{\displaystyle x}ถึงy{\displaystyle y}เพื่อให้ได้มาn1x+y{\displaystyle b^{n}-1-x+y}หรือเทียบเท่าn1(xy){\displaystyle b^{n}-1-(xy)}ซึ่งเป็นส่วนเติมเต็มฐานที่ลดลงของxy{\displaystyle xy}นอกจากนี้ ยังใช้รากเสริมที่ลดลงของn1(xy){\displaystyle b^{n}-1-(xy)}ส่งผลให้ได้คำตอบที่ต้องการคือxy{\displaystyle xy}.

หรืออีกวิธีหนึ่งคือการใช้ส่วนเติมเต็มฐาน (radix complement)xy{\displaystyle xy}อาจได้มาจากการบวกส่วนเติมเต็มฐานของy{\displaystyle y}ถึงx{\displaystyle x}เพื่อให้ได้มาx+ny{\displaystyle x+b^{n}-y}หรือxy+n{\displaystyle x-y+b^{n}}สมมติว่าyx{\displaystyle y\leq x}ผลลัพธ์จะมากกว่าหรือเท่ากับn{\displaystyle b^{n}}และตัดผู้นำออก1{\displaystyle 1}ผลลัพธ์ที่ได้ก็เหมือนกับการลบn{\displaystyle b^{n}}ทำให้ได้ผลลัพธ์xy+nn{\displaystyle x-y+b^{n}-b^{n}}หรือเพียงแค่xy{\displaystyle xy}ซึ่งเป็นผลลัพธ์ที่ต้องการ

ใน ระบบเลข ฐานสิบ ส่วนเติมเต็มฐานเรียกว่าส่วนเติมเต็มสิบและส่วนเติมเต็มฐานที่ลดลงเรียกว่าส่วนเติมเต็มเก้าในระบบเลขฐานสองส่วนเติมเต็มฐานเรียกว่าส่วนเติมเต็มสองและส่วนเติมเต็มฐานที่ลดลงเรียกว่าส่วนเติมเต็มหนึ่งการตั้งชื่อส่วนเติมเต็มในฐานอื่นๆ ก็คล้ายกัน บางคน โดยเฉพาะอย่างยิ่งDonald Knuthแนะนำให้ใช้ตำแหน่งของเครื่องหมายอะพอสโทรฟีเพื่อแยกความแตกต่างระหว่างส่วนเติมเต็มฐานและส่วนเติมเต็มฐานที่ลดลง ในการใช้งานนี้ส่วนเติมเต็มสี่หมายถึงส่วนเติมเต็มฐานของจำนวนในฐานสี่ ในขณะที่ส่วนเติมเต็มสี่คือส่วนเติมเต็มฐานที่ลดลงของจำนวนในฐานห้า อย่างไรก็ตาม ความแตกต่างนี้ไม่สำคัญเมื่อฐานชัดเจน (เกือบตลอดเวลา) และความแตกต่างเล็กน้อยในการวางเครื่องหมายอะพอสโทรฟีนั้นไม่เป็นที่นิยมใช้กัน นักเขียนส่วนใหญ่ใช้ ส่วนเติม เต็มหนึ่งและส่วนเติมเต็มเก้าและคู่มือการเขียนหลายเล่มละเว้นเครื่องหมายอะพอสโทรฟี โดยแนะนำให้ใช้ ส่วนเติม เต็มหนึ่งและ ส่วนเติม เต็มเก้า

ตัวอย่างทศนิยม

ตัวเลขส่วนเติมเต็มของเลขเก้า
09
18
27
36
45
54
63
72
81
90

ส่วนเติมเต็มเก้าของเลขทศนิยม คือจำนวนที่ต้องนำมาบวกกับเลขนั้นเพื่อให้ได้ผลลัพธ์เป็น 9 ตัวอย่างเช่น ส่วนเติมเต็มเก้าของ 3 คือ 6 ส่วนเติมเต็มเก้าของ 7 คือ 2 และอื่นๆ ดูได้จากตาราง ในการสร้างส่วนเติมเต็มเก้าของจำนวนที่มากกว่านั้น จะต้องแทนที่แต่ละหลักด้วยส่วนเติมเต็มเก้าของเลขนั้น

พิจารณาโจทย์การลบต่อไปนี้:

 873 [x, ตัวตั้ง] - 218 [y, ตัวลบ]

วิธีแรก

1. คำนวณส่วนเติมเต็มเก้าของตัวตั้ง (873)

999 - 873 = 126

2. เพิ่มสิ่งนั้นลงในตัวลบ (218)

 126 [ส่วนเติมเต็มเก้าของ x = 999 - x] + 218 [y, ตัวลบ] ————— 344 [999 - x + y]

3. จากนั้นคำนวณหาค่าเติมเต็มเก้าของผลลัพธ์

 344 [ผลลัพธ์] 655 [ส่วนเติมเต็มเก้าของ 344 = 999 - (999 - x + y) = x - y ซึ่งเป็นคำตอบที่ถูกต้อง]

วิธีที่สอง

1. คำนวณส่วนเติมเต็มเก้าของ 218 ซึ่งคือ 781 เนื่องจาก 218 มีสามหลัก ดังนั้นจึงเหมือนกับการลบ 218 ออกจาก 999

2. ต่อไป ผลรวมของx{\displaystyle x}และส่วนเติมเต็มของเลขเก้าy{\displaystyle y}ถูกจองแล้ว

 873 [x] + 781 [ส่วนเติมเต็มเก้าของ y = 999 - y] ————— 1654 [999 + x - y]

3. จากนั้นจึงตัดเลข "1" ตัวแรกออก เหลือเป็น 654

1654 -1000 [-(999 + 1)] ————— 654 [-(999 + 1) + 999 + x - ย]

4. คำตอบนี้ยังไม่ถูกต้อง ในขั้นตอนแรก นำ 999 ไปบวกกับสมการ จากนั้นลบ 1000 โดยตัดเลข 1 ตัวแรกออก ดังนั้น คำตอบที่ได้ (654) จึงน้อยกว่าคำตอบที่ถูกต้องอยู่ 1xy{\displaystyle xy}เพื่อแก้ไขปัญหานี้ จึงเพิ่มเลข 1 เข้าไปในคำตอบ

 654 + 1 ————— 655 [x - y]

การบวก 1 จะได้ 655 ซึ่งเป็นคำตอบที่ถูกต้องสำหรับโจทย์การลบที่เราตั้งไว้แต่แรก ขั้นตอนสุดท้ายของการบวก 1 สามารถข้ามไปได้หากใช้ส่วนเติมเต็มสิบของ y ในขั้นตอนแรกแทน

ขนาดของตัวเลข

ในตัวอย่างต่อไปนี้ ผลลัพธ์ของการลบมีจำนวนหลักน้อยกว่าx{\displaystyle x}:

 123410 [x, ตัวตั้ง] - 123401 [y, ตัวลบ]

โดยใช้วิธีแรก ผลรวมของส่วนเติมเต็มเก้าของx{\displaystyle x}และy{\displaystyle y}เป็น

 876589 [ส่วนเติมเต็มเก้าของ x] + 123401 [y] ———————— 999990

ค่าคอมพลีเมนต์ของ 999990 คือ 000009 เมื่อลบเลขศูนย์นำหน้าออกจะได้ 9 ซึ่งเป็นผลลัพธ์ที่ต้องการ

ถ้าตัวลบy{\displaystyle y}มีจำนวนหลักน้อยกว่าตัวตั้งหารx{\displaystyle x}ในวิธีที่สอง จะต้องเพิ่มเลขศูนย์นำหน้า เลขศูนย์เหล่านี้จะกลายเป็นเลขเก้านำหน้าเมื่อทำการหาค่าส่วนเติมเต็ม ตัวอย่างเช่น:

 48032 [x] - 391 [y]

สามารถเขียนใหม่ได้

 48032 [x] - 00391 [y ที่มีเลขศูนย์นำหน้า]

เมื่อแทนที่ 00391 ด้วยส่วนเติมเต็มของเลขเก้าและบวกด้วย 1 จะได้ผลรวมดังนี้:

 48032 [x] + 99608 [ส่วนเติมเต็มเก้าของ y] + 1 ——————— 147641

เมื่อตัดเลข 1 ตัวแรกออก จะได้คำตอบที่ถูกต้องคือ 47641

วิธีการไบนารี

เลขฐานสองส่วนเติมเต็ม
01
10

วิธีการหาค่าส่วนเติมเต็มมีประโยชน์อย่างยิ่งในระบบเลขฐานสอง (ฐาน 2) เนื่องจากค่าส่วนเติมเต็มของเลขหนึ่งสามารถหาได้ง่ายมากโดยการกลับบิตแต่ละบิต (เปลี่ยน '0' เป็น '1' และในทางกลับกัน) การเพิ่ม 1 เพื่อให้ได้ค่าส่วนเติมเต็มของเลขสองสามารถทำได้โดยการจำลองการทดเข้าไปในบิตที่มีค่าน้อยที่สุดตัวอย่างเช่น:

 0110 0100 [x เท่ากับ 100 ในระบบเลขฐานสิบ] - 0001 0110 [y เท่ากับเลขฐานสิบ 22]

กลายเป็นผลรวม:

 0110 0100 [x] + 1110 1001 [ส่วนเติมเต็มของเลขหนึ่งของ y = 1111 1111 - y] + 1 [เพื่อให้ได้ส่วนเติมเต็มของเลขสอง = 1 0000 0000 - y] ——————————— 10100 1110 [x + 1 0000 0000 - ปี]

เมื่อตัดเลข "1" ตัวแรกออก จะได้คำตอบคือ 0100 1110 (เท่ากับเลขฐานสิบ 78)

การแสดงจำนวนลบ

โดยปกติแล้ว วิธีส่วนเติมเต็มจะถือว่าตัวดำเนินการเป็นจำนวนบวกและyx ซึ่ง เป็นข้อจำกัดทางตรรกะที่กำหนดโดยการบวกและลบจำนวนเต็มใดๆ โดยปกติจะทำโดยการเปรียบเทียบเครื่องหมาย บวกจำนวนทั้งสองหรือลบจำนวนที่น้อยกว่าออกจากจำนวนที่มากกว่า และให้ผลลัพธ์มีเครื่องหมายที่ถูกต้อง

มาดูกันว่าจะเกิดอะไรขึ้นถ้าx < yในกรณีนั้น จะไม่มีเลข "1" ให้ขีดฆ่าหลังจากบวก เนื่องจากxy+n{\displaystyle x-y+b^{n}}จะน้อยกว่าn{\displaystyle b^{n}}ตัวอย่างเช่น (ในระบบเลขฐานสิบ):

 185 [x] - 329 [y]

เมื่อนำ ค่า yมาเติมเต็ม จะได้ผลลัพธ์ดังนี้:

 185 [x] + 670 [ส่วนเติมเต็มเก้าของ y] + 1 ————— 856

ณ จุดนี้ ยังไม่มี วิธี ง่ายๆในการคำนวณให้เสร็จสมบูรณ์โดยการลบn{\displaystyle b^{n}}(ในกรณีนี้คือ 1000) เราไม่สามารถมองข้ามเลข 1 นำหน้าได้ คำตอบที่คาดหวังคือ −144 ซึ่งไม่ห่างไกลอย่างที่คิด 856 บังเอิญเป็นส่วนเติมเต็มสิบของ 144 ปัญหานี้สามารถแก้ไขได้หลายวิธี:

  • อย่าไปสนใจประเด็นนี้ นี่เป็นเรื่องที่สมเหตุสมผลหากบุคคลนั้นกำลังใช้งานเครื่องคิดเลขที่ไม่รองรับตัวเลขติดลบ เนื่องจากมนุษย์สามารถทำการเปรียบเทียบตัวเลขทั้งสองก่อนการคำนวณเพื่อให้สามารถป้อนตัวเลขในลำดับที่ถูกต้อง และตรวจสอบว่าผลลัพธ์นั้นสมเหตุสมผลได้ง่าย
  • ใช้หลักการเดียวกันในการลบ 856 ออกจาก 1000 แล้วจึงใส่เครื่องหมายลบลงในผลลัพธ์
  • แสดงจำนวนลบโดยใช้ฐานเสริมของจำนวนบวก จำนวนที่น้อยกว่าn/2{\displaystyle b^{n}/2}ตัวเลข 0 และ 1 ถือเป็นค่าบวก ส่วนที่เหลือถือเป็นค่าลบ (และสามารถหาค่าของมันได้โดยใช้ส่วนเติมเต็มฐาน) วิธีนี้ใช้ได้ดีที่สุดกับฐานคู่ เนื่องจากสามารถกำหนดเครื่องหมายได้โดยดูจากหลักแรก ตัวอย่างเช่น ตัวเลขในระบบเลขฐานสิบจะเป็นค่าบวกถ้าหลักแรกเป็น 0, 1, 2, 3 หรือ 4 และเป็นค่าลบถ้าเป็น 5, 6, 7, 8 หรือ 9 และมันใช้ได้ดีมากในระบบเลขฐานสอง เนื่องจากบิตแรกสามารถถือเป็นบิตเครื่องหมายได้กล่าวคือ ตัวเลขจะเป็นค่าบวกถ้าบิตเครื่องหมายเป็น 0 และเป็นค่าลบถ้าเป็น 1 ที่จริงแล้วระบบเลขฐานสองแบบเติมเต็มฐานถูกใช้ในคอมพิวเตอร์สมัยใหม่ส่วนใหญ่เพื่อแสดงตัวเลขที่มีเครื่องหมาย
  • หากไม่มีตัวทดออกจากหลักที่มีค่ามากที่สุด (ซึ่งบ่งชี้ว่าxน้อยกว่าy ) ให้หาค่าเติมเต็มฐาน (radix complement) วิธีนี้ทำได้ง่ายกว่าการเปรียบเทียบและสลับตัวถูกดำเนินการในวงจรดิจิทัลแต่เนื่องจากการหาค่าเติมเต็มฐานต้องบวก 1 จึงทำได้ยากโดยตรง โชคดีที่มีเทคนิคที่สามารถใช้หลีกเลี่ยงการบวกนี้ได้: แทนที่จะใส่ตัวทดลงในหลักที่มีค่าน้อยที่สุดเสมอเมื่อทำการลบ ให้ใช้ตัวทดออกจากหลักที่มีค่ามากที่สุดเป็นตัวทดป้อนเข้าหลักที่มีค่าน้อยที่สุด (การดำเนินการนี้เรียกว่าend-around carry ) ดังนั้น ถ้าyxตัวทดจากหลักที่มีค่ามากที่สุดซึ่งปกติจะถูกละเลยจะถูกบวกเข้าไป ทำให้ได้ผลลัพธ์ที่ถูกต้อง และถ้าไม่ใช่ 1 จะไม่ถูกบวก และผลลัพธ์จะน้อยกว่าค่าเติมเต็มฐานของคำตอบอยู่หนึ่ง หรือค่าเติมเต็มฐานแบบลดทอน (diminished radix complement) ซึ่งไม่จำเป็นต้องบวกเพื่อให้ได้ วิธีนี้ถูกใช้โดยคอมพิวเตอร์ที่ใช้ sign-and-magnitude ในการแสดงจำนวนที่มีเครื่องหมาย

การใช้งานจริง

เครื่องคิดเลข Comptometer จากยุคปี 1920 โดยมีตัวเลขเติมเต็มเก้ากำกับไว้บนแต่ละปุ่ม

วิธีการหาค่าส่วนเติมเต็มถูกนำมาใช้ในเครื่องคิดเลขเชิงกลหลายชนิดเพื่อเป็นทางเลือกแทนการหมุนเฟืองย้อนกลับ ตัวอย่างเช่น:

  • เครื่องคิดเลขของปาสคาลมีชุดตัวเลขแสดงผลลัพธ์สองชุด ชุดสีดำแสดงผลลัพธ์ปกติ และชุดสีแดงแสดงค่าเก้าส่วนเติมเต็ม (nine's complement) ของผลลัพธ์นั้น มีแผ่นไม้แนวนอนใช้ปิดชุดตัวเลขชุดหนึ่งเพื่อเปิดเผยอีกชุดหนึ่ง ในการลบ ตัวเลขสีแดงจะถูกเปิดเผยและตั้งค่าเป็น 0 จากนั้นป้อนค่าเก้าส่วนเติมเต็มของตัวตั้งลบ ในบางเครื่อง สามารถทำได้โดยการหมุนวงล้อค่าเติมเต็ม (โดยไม่ต้องคำนวณค่าเก้าส่วนเติมเต็มของตัวตั้งลบด้วยตนเอง) เมื่อแสดงข้อมูลนั้นในช่องค่าเติมเต็ม (ชุดสีแดง) ผู้ใช้งานจะเห็นค่าเก้าส่วนเติมเต็มของค่าเก้าส่วนเติมเต็มของตัวตั้งลบ ซึ่งก็คือตัวตั้งลบนั่นเอง จากนั้นจึงเลื่อนแผ่นไม้เพื่อเปิดเผยตัวเลขสีดำ (ซึ่งตอนนี้แสดงค่าเก้าส่วนเติมเต็มของตัวตั้งลบ) และบวกตัวลบโดยการหมุนวงล้อ สุดท้าย ผู้ใช้งานต้องเลื่อนแผ่นไม้เพื่ออ่านคำตอบที่ถูกต้อง
  • เครื่องคำนวณ Comptometerมีตัวเลขส่วนเติมเต็มเก้าพิมพ์ด้วยตัวอักษรขนาดเล็กกว่า พร้อมกับตัวเลขปกติบนแต่ละปุ่ม ในการลบ ผู้ปฏิบัติงานจะต้องลบ 1 ออกจากตัวลบในใจ และป้อนผลลัพธ์โดยใช้ตัวเลขขนาดเล็กกว่า เนื่องจากการลบ 1 ก่อนการเติมเต็มเทียบเท่ากับการบวก 1 ในภายหลัง ผู้ปฏิบัติงานจึงบวกส่วนเติมเต็มสิบของตัวลบได้อย่างมีประสิทธิภาพ ผู้ปฏิบัติงานยังต้องกด "แท็บตัดการลบ" ที่ตรงกับตัวเลขซ้ายสุดของคำตอบ แท็บนี้ป้องกันไม่ให้ตัวทดผ่านไป ซึ่งเป็นวิธีการของ Comptometer ในการตัด 1 ตัวแรกออกจากผลลัพธ์[ 2 ]
  • เครื่องคิดเลข Curtaใช้หลักการของส่วนเติมเต็มในการลบ และสามารถซ่อนวิธีการนี้จากผู้ใช้ได้ ผู้ใช้ป้อนตัวเลขโดยใช้แผ่นเลื่อนสำหรับป้อนตัวเลขด้านข้างของเครื่อง ตัวเลขบนแผ่นเลื่อนแต่ละแผ่นจะถูกบวกเข้ากับตัวนับผลลัพธ์โดยกลไกเฟืองซึ่งจะไปเกี่ยวลูกเบี้ยวบน "ดรัมขั้นบันได" (หรือที่เรียกว่า "ดรัมแบบขั้น") ที่หมุนได้ ดรัมจะถูกหมุนโดยใช้ข้อเหวี่ยงที่ด้านบนของเครื่อง จำนวนลูกเบี้ยวที่แต่ละตัวเลขพบเจอขณะที่ข้อเหวี่ยงหมุนจะถูกกำหนดโดยค่าของตัวเลขนั้น ตัวอย่างเช่น หากตั้งแผ่นเลื่อนไว้ที่ตำแหน่ง "6" จะพบแถวของลูกเบี้ยว 6 ตัวรอบดรัมที่ตรงกับตำแหน่งนั้น สำหรับการลบ ดรัมจะถูกเลื่อนเล็กน้อยก่อนที่จะหมุน ซึ่งจะทำให้แถวของลูกเบี้ยวอีกแถวหนึ่งเข้ามาอยู่ในตำแหน่ง แถวสลับนี้ประกอบด้วยส่วนเติมเต็มเก้าของตัวเลข ดังนั้น แถวของลูกเบี้ยว 6 ตัวที่เคยอยู่ในตำแหน่งสำหรับการบวก ตอนนี้จึงมีแถวที่มีลูกเบี้ยว 3 ตัว ดรัมที่เลื่อนไปนั้นยังไปเกี่ยวลูกเบี้ยวอีกหนึ่งตัวซึ่งจะบวก 1 เข้ากับผลลัพธ์ (ตามที่จำเป็นสำหรับหลักการของส่วนเติมเต็ม) ค่า "overflow 1" ซึ่งเป็นค่าส่วนเติมเต็มสิบที่ปรากฏอยู่เสมอและถูกคำนวณเกินกว่าหลักที่มีค่ามากที่สุดในรีจิสเตอร์ผลลัพธ์นั้น ถูกตัดทิ้งไปโดยปริยาย

ในคอมพิวเตอร์

การใช้วิธีส่วนเติมเต็มพบได้ทั่วไปในคอมพิวเตอร์ดิจิทัล ไม่ว่าวิธีการแสดงจำนวนที่มีเครื่องหมายจะเป็นแบบใดก็ตาม อย่างไรก็ตาม วงจรที่ต้องการจะขึ้นอยู่กับวิธีการแสดงจำนวนนั้น:

  • หากใช้การแสดงผลแบบทูคอมพลีเมนต์ การลบจะต้องการเพียงแค่กลับบิตของตัวลบและกำหนดค่าตัวทดลงในบิตขวาสุดเท่านั้น
  • การใช้การแสดงผลแบบส่วนเติมเต็มหนึ่ง (ones' complement) จำเป็นต้องกลับบิตของตัวลบและเชื่อมต่อตัวทดออกของบิตที่มีค่ามากที่สุดเข้ากับตัวทดเข้าของบิตที่มีค่าน้อยที่สุด (end-around carry)
  • การใช้การแสดงค่าแบบเครื่องหมาย-ขนาด (sign-magnitude representation) ต้องการเพียงแค่การกลับบิตเครื่องหมายของตัวลบและการบวก แต่ตรรกะการบวก/ลบจำเป็นต้องเปรียบเทียบบิตเครื่องหมาย กลับบิตใดบิตหนึ่งของอินพุตหากบิตทั้งสองแตกต่างกัน ดำเนินการทดแบบวนรอบ (end-around carry) และกลับบิตผลลัพธ์หากไม่มีการทดจากบิตที่มีนัยสำคัญที่สุด

คู่มือการใช้งาน

วิธีการบวกส่วนเติมเต็มถูกนำมาใช้เพื่อแก้ไขข้อผิดพลาดเมื่อมีการเขียนสมุดบัญชีด้วยมือ ในการลบรายการออกจากคอลัมน์ตัวเลข นักบัญชีสามารถเพิ่มรายการใหม่โดยใช้จำนวนส่วนเติมเต็มสิบของจำนวนที่จะลบ จากนั้นจึงใส่ขีดคั่นเหนือตัวเลขของรายการใหม่เพื่อแสดงสถานะพิเศษ หลังจากนั้นจึงสามารถบวกตัวเลขทั้งคอลัมน์เพื่อหาผลลัพธ์ที่ถูกต้องได้

การบวกเพิ่มให้กับผลรวมนั้นมีประโยชน์สำหรับพนักงานเก็บเงินที่ทอนเงินสำหรับการซื้อสินค้าจากสกุลเงินที่มีมูลค่าหน่วยเดียวคือ 1 ยกกำลังด้วยจำนวนเต็มของฐานสกุลเงินนั้น สำหรับสกุลเงินทศนิยม ก็จะเป็น 10, 100, 1,000 เป็นต้น เช่น ธนบัตร 10.00 ดอลลาร์

ในการศึกษาระดับประถมศึกษา

ในโรงเรียนประถม บางครั้งนักเรียนจะได้รับการสอนวิธีการใช้ส่วนเติมเต็มเป็นทางลัดที่มีประโยชน์ในการคำนวณทางจิต [ 3 ] การ ลบทำได้โดยการบวกส่วนเติมเต็มสิบของตัวลบซึ่งก็คือส่วนเติมเต็มเก้าบวก 1 ผลลัพธ์ของการบวกนี้จะถูกใช้เมื่อเห็นได้ชัดว่าผลต่างจะเป็นบวก มิฉะนั้นจะใช้ส่วนเติมเต็มสิบของผลลัพธ์ของการบวกโดยทำเครื่องหมายเป็นลบ เทคนิคเดียวกันนี้ใช้ได้กับการลบบนเครื่องคิดเลข

ดูเพิ่มเติม

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

ใน คณิตศาสตร์ และ วิทยาการคอมพิวเตอร์ วิธี ส่วนเติมเต็ม เป็นเทคนิคในการเข้ารหัสช่วงสมมาตรของ จำนวนเต็ม บวกและลบ ในลักษณะที่สามารถใช้ อัลกอริทึม (หรือ กลไก ) เดียวกันสำหรับ การบวก..

ส่วนเติมเต็มเชิงตัวเลข

ส่วน เติมเต็มเชิงราก ของ n {\displaystyle n} -เลขหลัก y {\displaystyle y} ใน ราก ข {\displaystyle b} ถูกกำหนดให้เป็น ข n − y {\displaystyle b^{n}-y} ในทางปฏิบัติ การหาค่าคอมพลีเมนต์ฐานจะทำได้ง่ายกว่าโดยการเพิ่ม 1 เข้าไปใน ค่าคอมพลีเมนต์ฐานที่ลดลง ซึ่งก็คือ (...

ตัวอย่างทศนิยม

ส่วนเติมเต็มเก้าของเลขทศนิยม คือจำนวนที่ต้องนำมาบวกกับเลขนั้นเพื่อให้ได้ผลลัพธ์เป็น 9 ตัวอย่างเช่น ส่วนเติมเต็มเก้าของ 3 คือ 6 ส่วนเติมเต็มเก้าของ 7 คือ 2 และอื่นๆ ดูได้จากตาราง ในการสร้างส่วนเติมเต็มเก้าของจำนวนที่มากกว่านั้น...

วิธีแรก

1. คำนวณส่วนเติมเต็มเก้าของตัวตั้ง (873)