PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitvergleiche mit positiven und negativen Zahlen



izaseba
13-12-2006, 19:22
Hallo,

Ich schreibe gerade ein Applet, wo die Arbeitsweise eines 8-Bit Prozessors dargestellt wird, oder besser gesagt je nach Ereignis verschiedene Flags gesetzt oder gelöscht werden.

Jetzt bin ich auf ein Problem gestossen, wo ich keine Ahnung habe, wie ich es lösen soll...
Und zwar gibt es einen zweier Komplement Flag, der gesetzt wird wenn nach einer Operation halt zweier Komplement aufgetreten ist :confused:
Beispiel:


add 127,1

Es soll einfach 127+1 darstellen und hier tritt halt ein zweier Komplement auf weil binär dargestellt sieht es so aus:
01111111 + 00000001 ergibt
10000000

Das Problem ist halt, daß ich bei Java nicht vorzeichenlos arbeiten kann :mad:
und short verwenden muß, da ich ja auch Zahlen größer 127 haben muß.
Ich habe versucht das so zu lösen, daß ich wie im Beispiel 127 mit -1 multipliziere, um -127 zu bekommen und mit dem Ergebnis der addition vergleiche.
Sollten beide Zahlen dann gleich sein, ist ein zweier Komplement eingetreten, sonst halt nicht.
Nur leider sieht -127 bei short ganz anders aus als gewollt und ich hab keine Idee, wie ich es sonst noch lösen könnte :(
Acht mal rechts Shiften wäre für dieses Beispiel ja noch gut, aber es gibt ja noch andere Zahlen, wo es damit sicher nicht getan ist...

Vielleicht könnte mir jemand helfen ?

Gruß Sebastian

peschmae
13-12-2006, 22:27
Wieso testest du nicht einfach ob sich das entsprechende Bit(7) gegenüber dem Bit(7) der beiden Operanden geändert hat?
Also so mit Masken (1 << 7) die Bits rauskrüngeln und dann schaun.

MfG Peschmä