Addition negativer Zahlen (binär)
Hallo an alle!
Ich habe hier einige Aufgaben vorliegen und obwohl sie recht simpel erscheinen, habe ich ein kleines Problem.
Nehmen wir an, wir müssen folgendes binär ausrechnen (mit einer Stellenzahl von 5):
-14-24
Wenn wir nun von den beiden Zahlen jeweils ein Zweierkomplement bilden erhalten wir folgendes: Für -14: 1 0011 Für -24: 0 1000
Die Rechnung (Addition der beiden Zweierkomplemente) sieht dann bei mir folgendermaßen aus:
1 0011 + 0 1000 = 1 1011
Doch die 1 1011 entspricht im Dezimalsystem der 27 und nicht mal annäherungsweise der -38.
Ich würde mich sehr freuen, wenn mir jemand sagen könnte, wo mein Fehler liegt. Übersehe ich etwas?
5 Antworten
Binär: 1 2 4 8 16 32 64 128(Negativ-Bit) War nicht das achte Bit bei Bytes für negative Zahlen reserviert? Wenn man bis 24 rechnen möchte, dann braucht man doch noch ein sechstes Bit für das Minuszeichen, sonst ist man über dem Adressraum und bekommt so einen blöden Überlauf!
Ich hab nicht soviel Ahnung davon, aber ich weiß von der Programmierung, dass alle Variablen sich den Zahlenwert für negative und positive Bereiche teilen. Also bei Bytes die 255 haben, teilt es sich auf -128 bis 127 auf.
Versuch es mal, mit einem negativem sechstem Endbyte!
14 in binär = 1110 und 24 in binär=11000 und wenn du addierst dann Summe=100110 und das sind 38
du hast ein paar fehler ...
-14 = 1 0010
-24 = 10 1000
1 0010 + 10 1000 = 1 1101 1010
nach dem umrechnen von 1 1101 1010 in dezimal sind es genau -38
sry, gerade nochmal korrigiert und dann gemerkt, dass die korrektur mist war ...
-14 = 1111 0010
-24 = 1110 1000
Du musst nur für die Zahl, die du subtrahieren willst, das Zweierkomplement anwenden. Und dann "ganz normal" binär addieren.
edit: ups mein fehler, falsch gelesen, vllt poste ich gleich nochmal ;D
Vielen Dank für die schnellen Antworten!
Die Stellenzahl von t=5 wurde in der Aufgabenstellung vorgegeben. Ich schließe daraus, dass man die Aufgabe mit einer Stellenzahl von 5 nicht lösen kann, richtig?
Ähm, ja... weil man ja über den möglichen Zahlenwert hinausgeht! Außerdem, bei negativen Zahlen braucht man doch noch ein Extra-Bit für das "Vorzeichen".