0'ın bir tamamlayıcısında nasıl iki değeri vardır?


12

2'nin tamamlayıcısında 0'ın sadece bir değere sahip olduğu, 1'in tamamlayıcısında ise hem +0 hem de -0'ın ayrı değerlere sahip olduğu söylenir. Onlar neler?


8
0'ın iki değeri yoktur. 0 değerine sahiptir. Ne gelmez 1'in tamamlayıcı sahip ikidir gösterimleri . Ama bu gerçekten benzersiz bir şey değil. Örneğin, 10 sayısının ondalık basamakta sonsuz sayıda gösterimi vardır: 10, +10, 010, +010, 0010, +0010,… vb.
— Jörg W Mittag

Kesinlikle. Değerler sadece denklik sınıfları temsiller ve ne “değeri 0” denir hem içeren bir denklik sınıfı olur 000...0ve 111...1. Ancak bu iki temsil hala tek bir değer oluşturmaktadır.
— leftaroundabout

Yanıtlar:


19

Gelen 1'ler tamamlayacak sadece tüm bit invert sizi.

Bu 2 örneği ele alalım (8 bit olduğu varsayılarak):

  • , yani - 4 = 111110114=00000100−4=11111011

  • , yani - 0 = 11111111 .0=00000000−0=11111111

Yani 0 sayısını temsil etmenin 2 yolu var

Gelen 2'nin tamamlayıcı negatif sayının 1'in tamamlayıcı gösterimi 1 eklenir

  • 1'in tamamlayıcı olduğunu 11.111.011 olur 11111100−41111101111111100
  • 1'in tamamlayıcı olduğunu 11.111.111 olur 00000000 aynı 0 olarak−01111111100000000

Yani bu durumda 0'ı temsil etmenin tek bir yolu var

Örneklerden de görebileceğiniz gibi fark şu:

  • 1'in tamamlayıcı, 8 bit ile sadece numaraları ifade edebilir için 2 7 - 1 (-127 ila 127 kadar)−27+127−1
  • 8 bit ile 2'nin belirtilen bütünleyici sen numaraları ifade edebilir için 2 7 - 1 (-128 ila 127), bir daha sayı yüzden−2727−1

7
2'nin tamamlayıcısının, ne olduklarını ayrıntılara girmeseniz bile, aralıktaki bir sayıdan daha fazla avantajı olduğunu belirtmek gerekir .
— KRyan

7
Buradaki yorum bölümünde bahsedilen avantajlardan birinden de bahsedilebilir: En büyük avantajlardan biri çıkarma (/ negatif sayıların eklenmesi) sadece sayıların imzasız olduğu ve eklenmesiyle yapılabilir. Çıkarma için özel durumlar gerekmez = çok daha basit devre ve mantık. Bu sayfanın bu konuda güzel bir yazısı var.
— Jason C

3

0…01…1−0


Olanlar toplama-çıkarma çalışmalarını uçtan uca taşıma ile tamamlar. Elbette, programcıya gösterilenin temel temsil olması gerekmez.
— ttw

1
@ttw Soru, sıfırın iki temsilinin ne olduğunu sorar, bu yüzden toplama, çıkarma ve programcıların nerelere geldiğinden emin değilim.
— David Richerby

3

Tamamlayıcısında 0'ın iki farklı değerinden bahsetmek yanıltıcıdır. Birinin kompleman (ve ikisinin kompleman) sayıların ikili temsilidir . İkili sayıları temsil etmenin bir yolunu ve bunlar üzerinde aritmetik işlemlerin nasıl yapılacağını açıklarlar. Bit dizisi ile temsil edilen sayı değerdir.

0−00=−00

00…01…1

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.