Forum: Mikrocontroller und Digitale Elektronik Subtraktion in AVR-GCC


von Gast_Minuend (Gast)


Lesenswert?

Hallo uc-Gemeinde,

nun bitte nicht lachen :-( ICh weiß, ich sollte mich schämen. Aber ich 
möchte z.B. gerne von 0x00 - 0XAE rechnen und nen (unsigned cast) davor 
stellen, dass ich nur nen 52 rausbekomme. :-) Leider bekomme ich gar nix 
raus. Wie kriege ich den uC dazu das zu rechnen (ohen Zweierkomplement!)

gruß aus dem Süden

Danke!

von Johannes M. (johnny-m)


Lesenswert?

0-0xAE ist 0xFF52 (auf einem System mit sizeof(int) == 2). Wo liegt das 
Problem? Das hat mit Zweierkomplement nichts zu tun, sondern nur damit, 
dass solche Rechnereien grundsätzlich mindestens in int durchgeführt 
werden. Und das ist ein ganz einfacher Überlauf. Wenn Dich nur die 
letzten 8 Bit interessieren, musst Du den Rest wegschmeißen, z.B. indem 
Du den Wert nach uint8_t konvertierst...

Dass gar nichts rauskommt, kann ich nicht ganz nachvollziehen...

von Gast_Minuend (Gast)


Lesenswert?

Hallo Johannes,

du hast so wahrlich recht:-) Danke!! Das nix raus kommt, liegt an dem 
angeschlossenen Monitor, das versteht ASCII und der Wert liegt ja nicht 
mehr im ASCII-Character Bereich...


Danke!

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.