Subtraktion in AVR-GCC

Gast #1189464
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!
#1189477
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...
Gast #1189495
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!

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