@Lowoj:
Zwei Dinge, die mir auf- bzw. eingefallen sind:
a) Ich hab's nicht so mit C, dein Code würde mir also nicht viel sagen, aber deine konstante Integerzahl riecht nach Adresse der 32bit-Variable oder schiefem Pointer oder so.
b) Statt per Union könnte man die 32bit-Zahl auch durch Addition der gewichteten Bytewerte darstellen:
32Bit-Zahl = 256^3*MostSignificantByte + 256^2*(zweithöchstes Byte) + 256^1(zweitniedrigstes Byte) + LeastSignificantByte.
Ich hoffedenkemeine, daß man damit auf der sicheren Seite sein müßte.
c) vielleicht heißt der passende Befehl auch utoa(), u für unsigned. Beschreibe doch mal eine 32bit-Variable mit einer fixen Dezimalzahl und verwurste sie mit den Standardfunktionen, bis ebendiese Dezimalzahl am Schirm erscheint. Danach kannst du dich der Zusammenführung der Bytes widmen. Also möglichst nur an _einer_ Baustelle arbeiten.
d) Reihenfolge der Werte im Array invertieren, vielleicht stimmt dort etwas nicht. Dabei nur _ein_ Byte ungleich Null setzen, damit man's besser nachvollziehen kann.