16Bit Zahl Vorzeichen umdrehen?

Gast #731031
Lesenswert?

Hallo,

ich stehe hier momentan etwas auf dem Schlauch und weis nicht so recht 
weiter.

Ich habe eine 16-Bit Zahl $8000-$FFFF (negativ), $0000-$7FFF (positiv). 
Diese möchte ich nun auf auf meinem LCD darstellen. Im Positiven Bereich 
auch kein Problem, den Negativen bereich erkenne ich durch MSB=1.

Wie muß ich jetzt rechnen, damit aus $FFFF wieder eine 1 wird und aus 
$8000 eine 32768.


Danke für eure Hilfe,
Tubie
#731053
Lesenswert?

Gregor B. wrote:
> ist signed 0x8000 nicht "-0" und 0xffff "-32767"?
> Vorzeichen umdrehen würde ich bei einer signed Zahl durch togglen des
> MSB. Wert bleibt gleich, nur das Vorzeichen ändert sich.
Nein. Schon mal was von Zweierkomplement gehört? Wenn nicht, dann google 
mal danach oder schau bei Wikipedia. 0xFFFF ist -1 und 0x8000 ist 
-32768! "-0" gibt es nicht, würde auch keinen Sinn machen, zweimal die 
Null in einem Wertebereich zu haben...
#731055
Lesenswert?

BTW:
Falls es nicht klar sein sollte: Wenn man von der Zahl Null (also 
0x0000) eine Eins abzieht, dann gibts einen Underrun und es kommt 0xFFFF 
raus. Dementsprechend muss die "-1" in der Darstellung dem Wert 0xFFFF 
entsprechen, damit man überhaupt damit rechnen kann. Und das ist ja der 
Witz an der Zweierkomplement-Darstellung...
Gast #731079
Lesenswert?

Warum werden neg. Zahlen gern im 2-er Komplement dargestellt ?
Weil dann die normale binäre Addition bzw. Subtraktion
mit positiven, negativen und "gemischten" Zahlen funktioniert.
Das Vorzeichen muss dann nicht besonders beachtet werden.

MfG Willi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren