Binärzahlen im Zweier-Komplement addieren |
Ingo unregistriert
|
|
Binärzahlen im Zweier-Komplement addieren |
|
Guten Abend.
Was passiert wenn ich zwei 4-bit Zweier-Komplement Binärzahlen miteinander addiere, aber das Ergebnis größer als 4bit wird.
Also z.B.:
0101
+ 1100
Wäre doch 10001
Das kann aber doch nicht sein?
|
|
21.11.2012 18:35 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
|
21.11.2012 19:00 |
|
|
Ingo unregistriert
|
|
Hallo Karlito
Danke für deine Hilfe, eine Sache verstehe ich da nicht:
de.wikipedia.org/wiki/Arithmetischer_%C3%9Cberlauf#4_Bit_im_Zweierkomplemen
t
Da sind 3 Beispiele:
Aber ich verstehe das noch immer nicht ganz.
Können wir die einzelnen Beispiele durchgehen?
1.Beispiel:
5+5 wäre 10, aber als Ergebnis kommt -6 raus.
Wie kann das sein?
Ich weiß, dass wenn man die ausgeklammerte 0 noch in Betracht zieht, dann wäre es 10. Aber woher soll ich wissen, wann ich eine 0 davor schreiben soll und wann nicht?
|
|
21.11.2012 19:11 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo,
ich glaube mich zu erinnern, dass Ein tatsächlicher Wertebereichsüberlauf immer dann eintritt, wenn sich das forderste Bit (das erste von links) und der vorherige Übertrag unterscheided.
Bei 5+5 = -6 Handelt es sich um einen Überlauf (da nur Zahlen von -8 bis 7 Darstellbar sind)
Bei -5 - 5 = 6 ebenso
Beim letzen Beispiel unterschreiden sich das erste Bit und das vorherige Übertragsbit nicht -> kein Überlauf...
VG,
Karlito
|
|
21.11.2012 19:36 |
|
|
Ingo unregistriert
|
|
Und was müsste ich dann als Lösung aufschreiben?
Also bei 5+5:
01010 oder 1010
Das zweite wäre ja falsch, aber ich kann ja auch nicht ein bit herzaubern?
Oder darf ich das? Hängt das von der Aufgabenstellung ab?
Danke
|
|
21.11.2012 19:52 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo,
du betrachtest doch nur 4 Bit zahlen. Also ist auch die Lösung 1010. Auf echter Hardware werden dann noch Flags gesetzt, welche anzeigen, welche Überläufe aufgetreten sind. So gibt es das Carry-Flag (CF), welches einfach anzeigt, ob es einen Übertrag auf das 5. Bit gibt und Overflow (OF), welches angibt, ob es eine Wertebereichsüberschreitung gab. http://de.wikipedia.org/wiki/%C3%9Cberlaufbit
VG,
Karlito
|
|
21.11.2012 20:17 |
|
|
|