Forum: Mikrocontroller und Digitale Elektronik Betrag einer Integer Zahl


von Andre Wippich (Gast)


Lesenswert?

Moin!

Ich möchte für eine LCD Ausgabe eine Zahl in ASSCI Zeichen umwandeln. 
Dabei muss das Vorzeichen natürlich rausgefiltert werden.

Ich hatte mir jetzt gedacht, einfach das MSB zu löschen:
1
int16_t signed_number = -1;
2
unsigned char value; 
3
4
value = signed_number & 0x7FFF;

[ Das ( | 0x30 ) für die Ascii-Konvertierung hab ich mal rausgelassen. ]


Leider funktioniert das nicht. Ich erhalte für value anstatt 1 eine 7... 
Kann mir wer weiterhelfen? Dachte immer, dass vorzeichenbehaftete 
Integervariablen sichnur dadurch von vorzeichenlosen unterscheiden, dass 
das MSB als Vorzeichenanzeige genutzt wird...

Viele Grüße,
André

____________________
http://www.dark-sun.de

von A.K. (Gast)


Lesenswert?


von Henrik J. (Gast)


Lesenswert?

Ansonsten ist doch so etwas ganz easy?!

if (signed number < 0)
signed number *= -1;

von Mops (Gast)


Lesenswert?

if(signed_number < 0)
    value = -signed_number;

oder einfacher:

value = abs(signed_number);

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.