Brun Von der gönne wrote:
> Benutzen tu ich die AVR Libc.
>
> Wie bekommen ich denn aus den signed Interger einen unsigned Integer?
> Einfach 65536 addieren?
So wie es eine Funktion itoa gibt, gibt es auch eine Funktion utoa
Die benutzt du erst mal.
Dein Problem ist nicht das Bitmuster, welches in der Varaiblen steht.
Dem Bitmuster kann nämlich niemand ansehen, ob da jetzt ein Vorzeichen
dabei ist oder nicht. Das sind einfach nur 16 Bit.
Aber die Ausgabefunktion legt eine Interpretation fest:
itoa : Das Bitmuster enthält ein Vorzeichen
utoa : Das Bitmuster enthält kein Vorzeichen
Du stopfst jetzt deine 16-Bit Variable in itoa rein. Und gemäß seinem
Auftrag interpretiert itoa da ein Vorzeichen rein, weil das i in itoa
für int steht und ein int immer ein Vorzeichen hat.
utoa hingegen, gemäß seinem Auftrag, nimmt die 16 Bit so wies sie sind
und interpretiert kein Vorzeichen rein, weil das u in utoa für unsigned
(also: ohne Vorzeichen) steht.