Forum: Compiler & IDEs AVR - signed Datentypen


von marcos (Gast)


Lesenswert?

Hallo,

ich habe ein Verständnisproblem mit den signed Datentypen.

Beispiel:
- Ich definiere temp als int8_t (Wertebereich ist doch 128 - -127, 
oder?)
- Jetzt beschreibe ich temp mit einem Wert
- Wenn ich mit jetzt den Inhalt der Variable temp anzeigen lasse 
(konvertierung in BCD und anzeige als hex auf Display) sehe ich 
folgendes

temp  -->  HEX

0     -->  0x00    hätte die Mitte des Stellbereiches erwartet also 0x80
1     -->  0x01    hätte hier 0x81 erwartet
-1    -->  0xFF    hätte hier 0x7F erwartet

Kann mir jemand weiterhelfen ich verstehe das nicht

Gruss Marcos

von (prx) A. K. (prx)


Lesenswert?


von Stefan E. (sternst)


Lesenswert?

Negative Zahlen werden im Zweierkomplement kodiert. Google einfach 
danach.

von marcos (Gast)


Lesenswert?

Hallo,

bin begeistert. So schnell eine Antwort. Wusste aber nichts vom 
Zweierkomplement, sonst hätte ich natürlich danach gesucht.

Danke

--> Für alle die später daüber stolpern werden: Der Wiki Link von A. K. 
erklärt alles.

Gruss Marcos

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

marcos schrieb:

> - Ich definiere temp als int8_t (Wertebereich ist doch 128 - -127,
> oder?)

-128 ... +127

von Stefan E. (sternst)


Lesenswert?

marcos schrieb:

> Wusste aber nichts vom
> Zweierkomplement, sonst hätte ich natürlich danach gesucht.

Das war auch keinesfalls als Vorwurf gemeint, so nach dem Motto "hättest 
du auch von alleine finden können". ;-)

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.