Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kann mir jemand ganz einfach das Zweierkomplement erklären ? (https://www.delphipraxis.net/20694-kann-mir-jemand-ganz-einfach-das-zweierkomplement-erklaeren.html)

Rapthor 21. Apr 2004 18:53


Kann mir jemand ganz einfach das Zweierkomplement erklären ?
 
Hallo,
ich komme grad nicht so ganz mit. Zur Zeit geht's im Studium um das Zweierkomplement und Codierung ..... dass das mit Binärzahlen zu tun hat, weiß ich. Aber wer kann mir das nochmal genau erklären? Wozu brauch ich das 2er - Komplement und wie rechnet man darin?

Besten Dank im Voraus,
der Rapthor

d3g 21. Apr 2004 19:12

Re: Kann mir jemand ganz einfach das Zweierkomplement erklär
 
Google ist dein(e) Freund(in). [1] Wikipedia: Zweierkomplement.


[1] Im deuschen Usenet ist die Vorstellung vorherrschend, Google sei weiblich.

Christian Seehase 21. Apr 2004 21:20

Re: Kann mir jemand ganz einfach das Zweierkomplement erklär
 
Moin Rapthor,

in Ergänzung zu dem Wikipedia Artikel:

Das Zweierkomplement ist nicht auf das binäre Zahlensystem beschränkt, denn das Prinzip funktioniert bei jeder Zahlenbasis, auch im Dezimalsystem.

Grundsätzlich müssen beide Zahlen die gleiche Anzahl Stellen haben.
Ist dies nicht der Fall, so wird die kürzere links mit Nullen aufgefüllt.
Jetzt wird von der Zahl, die Abgezogen werden soll, das Einerkomplement gebildet, dass heisst man ergänzt jede Ziffer bis zur höchsten Ziffer des Zahlensystemes

Beispiel 837 - 12 (dezimalsystem)
aus 12 wird also 012 daraus das Einerkomplement 987

Code:
   837
+  987 Einerkomplement
+    1 Zweikomplement
======
  1825
Da ein Übertrag auf eine Stelle ausserhalb der Zahlenlänge hierbei wegfällt bleibt also 825 übrig, ausserdem kann man daran erkennen, dass die kleiner von der grösseren Zahl abgezogen wurde, das Ergebnis also positiv oder null ist.

Dreht man das Ganze um wird noch ein weiter Schritt notwendig:

Code:
  012
+ 162
+   1
=====
  175
in diesem Falle muss vom Ergebnis noch einmal das Zweierkomplement gebildet werden, um dem Betrag zu erhalten

Code:
  824
+   1
=====
  825
Da vorher kein Übertrag erfolgte ist das Ergebnis als negativ anzusehen.

Soweit wie ich es (vor langer Zeit :angle2: ) mal gelernt habe

Rapthor 28. Apr 2004 19:16

Re: Kann mir jemand ganz einfach das Zweierkomplement erklär
 
Danke,

hab mir das Ganze jetzt nochmal genaustens angeschaut. Im Binärsystem wird das Zweierkomplement gern genutzt, da ja nur eine bestimmte Anzahl Bits im Rechner für diesen oder jenen Zahlbereich verfügbar sind und damit das Rechnen bei fester Stellenzahl notwendig ist.
Bei 4 Bit also immer Zahlen wie 0110 (entspricht 6).
Das erste Bit bestimmt dabei dann ob negativ oder positiv.
Das hieße für -2 dann folgendes: 0010 (Binär für 2) -> 1101 + 1 (Einerkomplement plus 1) -> 1110
Das erste Bit ist demnach 1 und steht für einen negativen Wert.
Der Zahlbereich für 4 Bit geht beispielsweise von -2^(n-1) .... +2^(n-1) - 1 was also von -8 bis +7 reicht .... -8 -> 1000 und +7 -> 0111.

Naja, ich habs jedenfalls jetzt gerafft ;)

Rapthor


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz