2er-Komplement Allgemein |
Julien87 unregistriert
|
|
Guten Abend,
mich würde gerne interessieren wie ich allgemein vorgegebene Zahleinnwerte als Zweierkomplement erkenne, sofern sie im 2er-Komplement vorgegeben sind. Beim Binärsystem erkenn ich das an der 1 vorne. Was ist bei Hexadezimalwerten bzw. Allgemein?
Und mich würde interessieren wie ich das zweierkomplement zurückinvertiere im Allgemeinen um die Ausgangszahl erkennen zu können. Beim Binärsystem wird invertiert und dies mit +1 addiert. Wie kann ich das auf alle Zahlensysteme übertragen?
|
|
03.08.2013 21:44 |
|
|
Julien87 unregistriert
|
|
Hallo,
und vielen dank für die Antwort. Können wir uns eventuell erst einmal auf eine Hexadezimalzahl konzentrieren die zwei Stellen hat? Hier aus einer Beispielklausur:
4B und E4 sind im Komplement (Hier steht 2er-Komplement?) gegeben. Nun soll ich diese in eine 8stellige Dualzahl umwandeln. Ich mach das immer über die Dezimalzahl. Also wäre es klasse die Dezimalzahl der vorgegebenen Werte zu ermitteln. Jetzt weiss ich z.b. gar nicht welche den Negativ ist.
16^{2} =256
Jetzt habe ich nicht ganz verstanden woran ich erkennen kann welche den negativ ist. Kannst du das bitte am Beispiel hier zeigen, den ich finde so wird es mir klarer.
|
|
04.08.2013 15:52 |
|
|
|
Wenn du von Hex in Dual wandeln willst, ist das Dezimalsystem als Zwischenschritt ein unnötiger Mehraufwand: dafür musst du entweder Kopfrechnen können oder brauchst einen Taschenrechner. Die direkte Umwandlung zwischen Dual und Hex geht im Kopf.
Der lange Weg:
Wie du schon erkannt hast, ist 16²=256. Daher sind die Zahlen von 0 bis 127 positiv, von 128 bis 256 negativ.
75 < 128, daher positiv. Umwandlung ins Dualsystem kriegst du selbst hin, Lösung folgt weiter unten.
228 >= 128, das ist also eine negative Zahl. Hier ein kleiner Trick: ich ziehe einfach 16²=256 ab, um die Zahl in den Bereich [-128;127] zu bringen: 228-256=-28. Die Zahl ist -28.
Der schnelle Weg:
16=2^4, daher lässt sich eine Hexziffer durch 4 Binärziffern ausdrücken. Das funktioniert nur so einfach, wenn es glatt aufgeht.
Von Dezimal in Dual: 10=2^3,3219... geht nicht auf, da ist die Umrechnung aufwendiger.
4 = 0100
B = 1011
E = 1110
4B = 01001011 (einfach das Bitmuster von 4 und das von B aneinandersetzen)
E4 = 11100100
__________________ Syntax Highlighting fürs Board (Link)
|
|
04.08.2013 16:11 |
|
|
Julien87 unregistriert
|
|
Vielen dank, also kann ich einfach wie folgt vorgehen:
Basis der Hexadezimalzahlen ist 16, wobei im Binären 2^4 =16 gilt. Das heißt hier kann ich erkennen das eine Hexadezimalzahl durch max. 16 Binärziffern ausgedrückt werden kann.
Wenn ich nun ein beliebigen Zahlenwert in Hexadezimalschreibweise in die Binäre Schreibweise umwandeln will, brauch ich einfach nur die einzelnen Ziffern der Hexadezimalzahl einzeln in Binäre Werte umzuwandeln. Danach werden die nur aneinandergereiht. Auch brauche ich mir hier noch keine Gedanken über ihr Vorzeichen machen, denn dieses kann ich in der Binärschreibweise leicht erkennen.
Wie du bereits erwähnt hattest gilt:
4 = 0100
B = 1011
E = 1110
Daraus folgt:
4B = 01001011
E4 = 11100100
Da im Komplement die Werte gegeben sind, ist 4B= 01001011 Positiv und E4 = 11100100 negativ (Abgelesen von der vordernsten Ziffer)
Um nun die Dezimalzahl herauszubekommen, kann ich getrost einfach wie gewohnt die Zahlen in das Dezimalsystem umwandeln, bei 2er-Komplement folgt bei Werten mit einem Vorzeichen von 1, inver. und +1 dazuaddieren.
Bin mir sicher das ich alles verstanden habe und wollte nur Zweck des einprägens noch einmal alles erwähnen. Ist dieses Denkmuster korrekt ? Dann wären wir bereits fertig.
|
|
04.08.2013 16:34 |
|
|
Julien87 unregistriert
|
|
Hi wieso zeigt er mir bei arndt-bruenner.de etwas anderes an wenn ich 4B ins Binärsystem umwandel?
|
|
04.08.2013 17:41 |
|
|
|
Zitat: |
Basis der Hexadezimalzahlen ist 16, wobei im Binären 2^4 =16 gilt. Das heißt hier kann ich erkennen das eine Hexadezimalzahl durch max. 16 Binärziffern ausgedrückt werden kann. |
Nein. 4 Ziffern im Dualsystem(2) entsprechen einer Ziffern im Hexadezimalsystem(16).
Zitat: |
wieso zeigt er mir bei arndt-bruenner.de etwas anderes an wenn ich 4B ins Binärsystem umwandel |
Weil Arndt Brünner keine führenden Nullen anzeigt. Wenn du im unteren Drittel der Seite auf "formatiere um" klickst, wird sogar die führende Null mit angezeigt.
__________________ Syntax Highlighting fürs Board (Link)
|
|
04.08.2013 18:11 |
|
|
|