Forum: Mikrocontroller und Digitale Elektronik signed char representation


von sorry (Gast)


Lesenswert?

Kurze Frage:
Wie wird beim AVR GCC ein signed char interpretiert?
Einfach MSB als Vorzeichen, als Einerkomplement oder Zweierkomplement?

Ist also beispielsweise eine 253 eigentlich eine -125 eine -2 oder -3?

Sorry, konnte es nicht finden.
Danke für eure Hilfe!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

So wie sonst auch:
  binär   signed  unsigned
00000010 =  2
00000001 =  1
00000000 =  0
11111111 = -1     = 255
11111110 = -2     = 254
11111101 = -3     = 253

von (prx) A. K. (prx)


Lesenswert?

sorry wrote:

> Einfach MSB als Vorzeichen, als Einerkomplement oder Zweierkomplement?

Einerkomplements sind mit Seymour Cray ausgestorben und sign/magnitude 
gibt es m.W. nur bei Fliesskommazahlen.

von sorry (Gast)


Lesenswert?

Danke.

Also einfach für die Umrechnung (X - 256) rechnen. (128 < X < 256)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Einerkomplement
Ah, das war doch die Doppelnull  ;-)
(positive Null und negative Null)

> Also einfach für die Umrechnung (X - 256) rechnen. (128 < X < 256)
In einem 8 Bit-Wort gibt es keine 256. Das ist das 9. Bit, und ab da 
kannst du machen was du willst, denn das spielt sich ausserhalb der 8 
Bit ab. Du wirst mit einer Manipulation am 9. Bit die unteren nicht 
ändern.

Einfacher ist: zum Komplement eine 1 addieren.
So ist das Zweierkomplement definiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.