AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kann mir jemand ganz einfach das Zweierkomplement erklären ?
Thema durchsuchen
Ansicht
Themen-Optionen

Kann mir jemand ganz einfach das Zweierkomplement erklären ?

Ein Thema von Rapthor · begonnen am 21. Apr 2004 · letzter Beitrag vom 28. Apr 2004
Antwort Antwort
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#1

Kann mir jemand ganz einfach das Zweierkomplement erklären ?

  Alt 21. Apr 2004, 18:53
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
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#2

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

  Alt 21. Apr 2004, 19:12
Google ist dein(e) Freund(in). [1] Wikipedia: Zweierkomplement.


[1] Im deuschen Usenet ist die Vorstellung vorherrschend, Google sei weiblich.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

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

  Alt 21. Apr 2004, 21:20
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 ) mal gelernt habe
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#4

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

  Alt 28. Apr 2004, 19:16
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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