Hallo,
Erstmal ein Stückchen Code:
1 | IntToCharArray(int number, char* string)
|
2 | {
|
3 | /*
|
4 | Diese Funktion wandelt einen Int in eine char-Zeichenkette unter Beachtung
|
5 | des Vorzeichens. Bsp: 534 -> "534", -93 -> "-93", usw.
|
6 | */
|
7 | }
|
8 |
|
9 | main
|
10 | {
|
11 | unsigned char c=0xF1;
|
12 | char mystring[5];
|
13 | IntToCharArray(c, mystring); // Ergebnis: "241"
|
14 | IntToCharArray((char)c, mystring); // Ergebnis: "241"
|
15 | IntToCharArray((int)c, mystring); // Ergebnis: "241"
|
16 | }
|
Jetzt ist ja das oberste Bit von c gesetzt, da der Wert >0x7F ist, somit
ist das Vorzeichen gesetzt und die gewünschte Ausgabe wäre -113. Wie muß
ich von uchar nach int casten, damit das MSB vom uchar als Vorzeichenbit
vom Int interpretiert wird? Gibts da eine einfache Lösung oder muß ich
mir ne Konvertierungsfunktion schreiben?
Vielleicht könnt ihr mir ja helfen? Danke im Vorraus.