Gast
#786792
Hi, ich habe eine Funktion geschrieben, welche die Bytes eines shorts tauscht. Im Prinzip keine große Kunst. Allerdings soll dies auch mit signed Daten funktionieren. Meine byte swap Funktion sah zu begin so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Wenn ich die Funktion zwei mal hintereinander aufrufe, sollte man meinen, dass man wieder seine Anfangszahl erhält. Dem ist aber nicht so. Wenn ich z.B. eine "-3" reingebe, gibt die Funktion mir "-769" zurück. Rufe ich die Funktion nun mit diesem Ergebnis auf, erhalte ich nicht die erwartete "-3", sondern "-260". Deklarier ich das low und high byte aber als unsigned char, funktioniert es tadellos. Kann mir jemand erklären wieso sich das so verhält? Grüße, Daniel