Wenn ich eine Zahl meinetwegen 1 0 1 1 0 vor mir hab...!!
Wie weiss ich, ob die negativ oder postiv ist...!?
Wenn ich eine Zahl meinetwegen 1 0 1 1 0 vor mir hab...!!
Wie weiss ich, ob die negativ oder postiv ist...!?
Am Besten wäre die Antwort noch heute, da ich morgen die Arbeit schreibe!!
Wenn bei gegebener wortbreite (8 bit bei byte, 16 bei short, 32 bei long etc.) das höchste bit (msb, ganz links bei der binär-darstellung) gesetzt ist und es sich im gesamten auch um vorzeichenbehaftete zahlen handelt ist die zahl negativ.
Beim beispiel von 1 0 1 1 0 muss man davon ausgehen, dass die führenden nullen NICHT angegeben sind und es sich um mindestens byte handelt (für alles was noch länger ist, gilt das genau so).
Das bedeutet, dass diese zahl eigentlich "0 0 0 1 0 1 1 0" ist und damit eben positiv (22 dezimal).
Im unwahrscheinlichen fall von 5-bit zahlen hätten wir aber eine negative zahl (-10 dezimal).
mr.escape
Hi!
Sorry, was ist Locad?
Das due die Binaerzahl 10110 meinst, hab' ich kappert, den Rest nicht. bei der üblichen Art der Binärzahlencodierung mit Vorzeichen, ist das MSB das Vorseichen (i.d.R. das linke Bit). Wenn's gesetzt ist müsste die Zahl negativ sein, sonst positiv.
Probierts aus: nim ein dreistellige Binärzahl mit einem zusätzlichen Bit als Vorziechen. Ziehe nun +1 von Null ab ohne das Vorzeichen zu berücksichtigen:
+0000
-0001
-----
=1111
(Das Ergebnis plus 1 ergibt mit Überlauf 10000, stimmt also.)
OK, Links ist das Vorzeichen und es ist gesetzt. da das Ergebnis -1 sein muss, ist also das Vorzeichenbit bei negativen Zahlen gesetzt. (Ich musste das gerade selbst so überprüfen, da ich mir nicht mehr sicher war.)
Bis denn
Andreas
Alles klar, danke euch!!!
Also ist die Zahl immer negativ, wenn das "erste" Bit gesetzt ist!?
Oder gibt es Ausnahmen?
Hi!
Ja, nach dieser Kodierung darf es keine Ausnahmen geben. ;-)
Bis denn
Andreas