Diskussion:Einerkomplement

aus Wikipedia, der freien Enzyklopädie

Sollte man nicht zwischen dem Einerkomplement als Operation und der Darstellung von Zahlen als Einerkomplement unterscheiden???


Ich glaube, was hier bis 14.11.2003 stand, ist Unfug: Mit dem Einerkomplement lassen sich nicht vernünftig negative Zahlen darstellen und dann auch noch addieren etc. Denn -1 entspräche der Binärdarstellung 11111110. Folglich berechnet sich -1 + -1 wie folgt: 11111110 + 11111110 = 111111100. Nach Weglassen des Überlaufs erhält man: 11111100, was jedoch nicht -2, sondern -3 entspricht!

Sicher könnte man ein System bauen, dass im Einerkomplement rechnet, doch sind die dadurch erkauften methodischen Nachteile ähnlich gravierend wie beim Vorzeichenbit.

Das Einerkomplement ist hingegen eine grundlegende Operation auf binären CPUs, die "NOT"-Operation.

Habe daher den Artikel komplett geändert. Kai Petzke 02:26, 15. Nov 2003 (CET)


Was ist eine Gleitkommazahlen-ALU? Arithmetical Logical Unit oder sowas?


Einerkomplement in der Praxis nahezu bedeutungslos ? Schaust du hier : Transmission Control Protocol#Aufbau und Funktion des TCP Pseudo-Headers --Taschenrechner 14:33, 28. Mai 2005 (CEST)

Nicht nur das! Viele alte CPUs (z.B. der MOS6502) können nur Einerkomplement bei einer Subtraktion. Statt den Subtrahenden zu invertieren, eins dazuzuaddieren und ihn zum Minuenden zu addieren (das wäre Zweierkomplement), wird einfach nur der Subtrahend inviertiert und zum Minuenden addiert. Klar, keiner will in der Praxis mit Einerkomplement arbeiten, weil es einfach nicht funktioniert - deshalb sind alle Subtraktionen auf dem 6502 immer mit Carry-Flag, d.h. das Carry wird zum Gesamtergebnis dazuaddiert. Und der Punkt ist: Es ist ein Carry, und kein "Borrow" (wie z.B. bei 8086). Setzt man also das Carry-Flag=1 und subtrahiert im Einerkomplement, bekommt man das korrekte Zweierkomplement-Ergebnis. Fazit: Eine ALU kann man vereinfachen, indem man Einerkomplement statt Zweierkomplement implementiert. Der Programmierer muß dann einfach nur immer das Carry im Vergleich zum Borrow invertieren. --Michael Steil 10:54, 29. Sep 2005 (CEST)


Textverständlichkeit

Ich zitiere die Einleitung: "Das Einerkomplement ist eine arithmetische Operation auf Binärzahlen. Dabei werden alle Ziffern bzw. Bits gekippt, das heißt aus 0 wird 1 und umgekehrt." Jeder Laie erwartet nun im nächsten Satz über den Sinn dieser Vorgehensweise aufgeklärt zu werden. Bitte holt das nach. --134.155.99.42 20:48, 11. Mai 2006 (CEST)

Neuverarbeitung

Ich habe mir erlaubt den Artikel neu zu schreiben, da vieles gar nicht stimmte!

Programmiersprache C und die Tilde

Meiner Meinung nach ist der Satz zur Programmiersprache C/C++ falsch!

In den Programmiersprachen C, C++ oder Java wird diese Operation mit dem Symbol ~ dargestellt.

Das Komplement, welches durch die Tilde erstellt wird entspricht dem Zweierkomplement.

So ergibt der C-Code:

 printf("%d\n", 3);
 printf("%d\n", ~3);

den folgenden Output

 3
 -4

(nicht signierter Beitrag von BBaumbach (Diskussion | Beiträge) )

Nein, der Satz stimmt schon. Wenn du dir die binäre Darstellung von +3 und -4 ansiehst, siehst du es gleich. Viele Grüße, --GottschallCh 19:45, 20. Jun. 2007 (CEST)

Einerkomplement ist üblich bei der Darstellung der Manitisse

Meiner Meinung nach ist der IEEE Standart das übliche, und da wird die Mantisse als unsigned dargestellt! Falls mir niemand widerspricht werde ich es ändern. --Flntobi 09:03, 23. Jul. 2007 (CEST)

Richtig, die Mantisse wird nach IEEE in der Vorzeichen-Betrag Darstellung gespeichert. Allerdings bezieht sich der Satz auf die Berechnung der Gleitkommazahl in der ALU. Keine Ahnung wie das da läuft, aber anscheinend war sich der Autor dieses Satzes selbst nicht so ganz sicher: "... allerdings ist eine Gleitkommazahlen-ALU ohnehin wesentlich komplexer". Also nichts Halbes und nichts Ganzes. Hab den Satz mal entfernt. --Sulai 13:10, 23. Jul. 2007 (CEST)

Einleitung

"Das Einerkomplement ist eine arithmetische Operation auf Dualzahlen. Dabei werden alle Ziffern bzw. Bits invertiert, das heißt aus 0 wird 1 und umgekehrt." Es sollte wohl erwähnt werden, dass dies nur bei negativen Zahlen der Fall ist, nicht wahr? Bei positiven Zahlen wird schließlich nichts invertiert. Wenn niemand was dagegen hat, werde ich den Satz ändern. --85.233.20.2 19:00, 27. Nov. 2007 (CET)

Ich habe da mal eine Frage zum Einerkomplement:

          1011 (-5)
       +  1011 (-5)
Übertrag 1011
         -----
       =  0110
   Carry     1
       =  0111 (+7)

ist dieser Eintrag nicht doch falsch? da 1011 doch -4 entspricht? und das Ergebnis dann -8 ergibt?

Ja, 1011 ist die Einerkomplementdarstellung von −4.
"−8" ist in der 4-bit-Einerkomplementdarstellung nicht vorgesehen und zu +7 übergelaufen (Das Overflow-Flag sollte gesetzt werden). Die Ermittlung des Overflows fehlt noch im Artikel. --Rainald62 (Diskussion) 03:06, 6. Nov. 2016 (CET)

Unverständliches

„Der darstellbare Zahlenraum verringert sich um 1, da die Null zweimal vorhanden ist fällt eine für den Zahlenraum weg) und verschiebt sich von [0 bis N] nach [−0/2 N bis 0/2 N].“

  • Der Zahlenraum verringert sich.
  • Die Null ist zweimal vorhanden.
  • Ein Datenwort entfällt (die „zweite Null“ könnte auch sinnvoller verwendet werden)
  • Das mit dem Verschieben verstehe ich nicht.

„Die Darstellung jeder Zahl bleibt aber eineindeutig, da das 1. Bit ständig für das Vorzeichen reserviert ist.“

  • Unter „eineindeutig“ würde ich verstehen, dass genau eine Zahl durch genau eine Bitkombination dargestellt wird. Dass also (a) jede Bitkombination eindeutig eine Zahl darstellt; dem ist so.
  • Weiterhin würde (b) jede darstellbare Zahl eindeutig durch eine Bitkombination dargestellt; dem ist nicht so, weil die Null ja so oder so dargestellt sein kann.
  • Was soll das „ständig“?
  • Worin besteht die durch „da“ beim Leser erwartete Kausalität? („Weil das erste Bit für das Vozeichen reserviert ist, darum ist die Darstellung eineindeutig.“ Diese Aussage halte ich für falsch.)

Daher {{Überarbeiten}} eingefügt -- Pemu 13:02, 26. Jan. 2009 (CET)

Überarbeiten

Fassen wir noch mal ein wenig zusammen. Eine klare Einleitung mit Einordnung gibt es nicht. Man müsste die Sache mathematisch aufrollen. Die Anwendung in der Computerarithmetik ist eben nur ne Anwendung, da darf nich gleich zu Beginn was von Programmiersprachen reingemischt werden.

Die Beispiele wurden offenbar von verschiedenen Autoren einfach rangeklebt. Wieso gerade diese? Aufschlüsseln nach Beispielen für Ganzzahlen, also Darstellung negativer Zahlen, dann auch Festkomma und Gleitkomma, deren Wertebereich. Am Ende kann man insgesamt Pro und Con vergleichen, was derzeit immer mal als Nebensatz im Fließtext steht ...

PS: Quellen, Belege, Weblinks, etc. --WissensDürster 12:26, 28. Nov. 2009 (CET)

Artikel überarbeitet und Beispiele auf das Wesentlichste zusammengekürzt--KMic 16:52, 5. Jul. 2011 (CEST)

Passt Tabelle zum Text Motivation?

Die Erklärung des Abschnittes Motivation und die Darstellung der Tabelle rechts davon scheint nicht äquivalent zu sein. Im Text steht das 10001010 = -5 ist und in der Tabelle wird gezeigt das 11111101 = -2 ist. Erwartet hätte ich aber das 10000100 = -2 ist. (11111101 = -2 scheint mir in diesem Fall eher zu der Erklärung des Zweierkomplements zu passen.) (nicht signierter Beitrag von 93.198.160.113 (Diskussion) 03:03, 9. Sep. 2014 (CEST))

Hier sind 4-Bit-Zahlen gemeint, wie im Beispiel darunter. -- HilberTraumd, m⟩ 12:52, 12. Sep. 2014 (CEST)

Sollte man dazu schreiben --DJ Kaito (Diskussion) 08:24, 3. Dez. 2015 (CET)