2010-04-09 8 views
20

tôi biết unsigned, bổ sung hai nhân, bổ sung những và ký tên vào cường độ, và sự khác biệt giữa các, nhưng những gì tôi đang tò mò về là:của hai bổ sung, tại sao cái tên "hai"

  1. lý do tại sao nó được gọi là bổ sung của hai (hoặc những người), vì vậy có bổ sung tổng quát hơn của N không?
  2. theo cách nào những thiên tài này suy ra một cách tự nhiên để biểu thị các số âm?
+3

"Bổ sung của hai số nhị phân được xác định là giá trị thu được bằng cách trừ số từ một công suất lớn của hai" - http://en.wikipedia.org/wiki/Two's_complement – Ben

Trả lời

27

Hai của bổ sung đến khi một người nào đó nhận ra rằng 'going tiêu cực' bằng cách trừ 1 từ 0 và cho phép các bit rollunder thực sự thực hiện ký số học đơn giản hơn vì không kiểm tra đặc biệt phải được thực hiện để kiểm tra xem số lượng là tiêu cực hay không . Các giải pháp khác cung cấp cho bạn sự gián đoạn giữa -10. Sự kỳ quặc duy nhất với sự bổ sung của hai là bạn có thêm một số âm trong phạm vi của bạn hơn là bạn có số dương. Tuy nhiên, sau đó, các giải pháp khác cung cấp cho bạn những điều kỳ lạ như +0-0.

Theo Wikipedia, tên chính nó xuất phát từ toán học và được dựa trên cách làm cho phép trừ đơn giản hơn khi bạn có số địa điểm hạn chế. Hệ thống này thực sự là một "bổ sung radix" và vì nhị phân là cơ sở hai, điều này trở thành "bổ sung của hai". Và nó chỉ ra rằng "bổ sung của một người" được đặt tên cho "bổ sung radix giảm", đó là cơ số trừ đi một. Nếu bạn nhìn vào điều này cho thập phân, ý nghĩa đằng sau các tên có ý nghĩa hơn.

Method of Complements (Wikipedia)

+1

điều duy nhất còn lại để thêm vào là, giống như với thanh ghi CPU có số bit cố định, để khái quát hóa thành cơ số N, bạn phải làm việc trong một số chữ số cố định. – JustJeff

7

Bạn có thể làm điều tương tự ở các cơ sở khác. Với số thập phân, bạn sẽ có phần bổ sung của 9, trong đó mỗi chữ số X được thay thế bằng 9-X, và phần bù của số 10 là số bổ sung của 9 cộng với một số. Sau đó, bạn có thể trừ bằng cách thêm phần bổ sung của 10, giả sử số chữ số cố định.

Một ví dụ - trong một hệ thống 4 chữ số, do trừ

0846 
-0573 
=0273 

Đầu tiên tìm thấy sự bổ sung của 9 của 573, đó là 9-0 9-5 9-7 9-3 hoặc 9426
sự 10 nhân sự bổ sung của 573 là 9426 + 1, hoặc 9427
Bây giờ thêm sự bổ sung của 10 và vứt bỏ bất cứ điều gì mà thực hiện 4 chữ số

0846 
    +9427  .. 10's complement of 573 
= 10273  .. toss the 'overflow' digit 
= 0273  .. same answer 

Rõ ràng đó là một ví dụ đơn giản. Nhưng sự tương tự mang lại. Điều thú vị là giá trị tiêu cực nhất trong bổ sung 4 chữ số 10? 5000! Đối với từ nguyên, tôi dự đoán rằng bổ sung của thuật ngữ 1 là một bổ sung theo nghĩa tương tự như góc bổ sung từ hình học là 90 độ trừ góc - tức là, đó là phần còn lại khi bạn trừ đi từ một số giá trị tiêu chuẩn. Tuy nhiên, không chắc chắn cách bổ sung "2" của có ý nghĩa.

+0

"Bổ sung 2" bởi vì nó nằm trong cơ sở 2. Thuật ngữ chung là "bổ sung cơ số". – dan04

+0

Điều đó thực sự kỳ quặc, tại sao gọi bổ sung của N là kết quả của việc trừ chữ số khỏi N-1? Trái ngược với việc trừ nó từ N. – phkahler

+0

@phkahler: Bởi vì trong cơ sở N, trừ mỗi chữ số từ N-1, và sau đó thêm 1, tương ứng chính xác để trừ số từ một sức mạnh thích hợp của N. Ví dụ, bổ sung của 10 0573 là 9426 + 1 = 9427, chính xác là 10000-573. Đây cũng là lý do tại sao phương thức hoạt động: 846-573 = 846+ (10000-573) -10000. [Trivia: Điều này tương ứng với một quy tắc được gọi là "tất cả từ chín và cuối cùng từ 10" trong cái gọi là "toán học Vedic": http://en.wikipedia.org/wiki/Vedic_Mathematics] – ShreevatsaR

0

Trong hệ thống đánh số thập phân, các radixmười:

  • Radix bổ sung cho được gọi là chục bổ sung
  • giảm Radix bổ sung cho được gọi là nines' bổ sung

Trong hệ thống đánh số nhị phân, các radixhai:

  • Radix bổ sung cho được gọi là hai của bổ sung
  • giảm Radix bổ sung cho được gọi là bổ sung những

Nguồn: https://en.wikipedia.org/wiki/Method_of_complements