signed char in unsigned short = Problem
-
Hi Leute,
ich hab hier nen signed char mit dem Wert 0x4e. Wenn ich jetzt nem unsigned short diesen signed char zuweise hat mein unsigned short den Wert 0xffe4.
Öhm ... Bin leicht verwirrt. Ich weiss, dass es mit dem Minus zusammenhängen muss, aber ich blicks grad nicht, woher das kommt, und vor allem: wie ich das umgehen kann!signed char c = 'ä' //0x4e; unsigned short s = c;
vor dem kopieren den signed char in einen unsigned char zu konvertieren geht leider nicht.
-
Ich denke, es wird zuerst signed char in short gewandelt und dabei das Vorzeichen beibehalten. Dann wird weiter in unsigned short gewandelt, und dabei das Bitmuster übernommen. Wenn du 0x00e4 in s haben willst, wirst du wohl vorher in unsigned char wandeln *müssen*.
-
da char, kann ich mir auch sowas vorstellen:
signed char = 'ä';
unsigned short s = c&0xff;