Ich versuche, ein int in 4 Bytes zu konvertieren. aus irgendeinem Grund endet es das Hinzufügen einiger Ende an der Sonderzeichen Müll bisC int char Konvertierung fügt garage Zeichen
int _tmain(int argc, _TCHAR* argv[])
{
int num = 31070;
char arr[4];
arr[0] = num & 0xFF;
arr[1] = (num >> 8) & 0xFF;
arr[2] = (num >> 16) & 0xFF;
arr[3] = (num >> 24) & 0xFF;
return 0;
}
Hier eine Ausgabe des Debug-Fenster ist, wobei man sehen kann, dass es ^
und y
für arr[0]
und arr[1]
Ich habe Dinge wie Casting versucht, aber immer noch diese Müll Zeichen hinzugefügt bekommen.
Es scheint, die Daten als Zeichen angezeigt wird, da es in Zeichentyp variabel ist. Verwenden Sie einen anderen Debugger oder suchen Sie nach Einstellungen, um sie zu deaktivieren, wenn Sie sie hassen. – MikeCAT
Sie missverstehen die Debugging-Ausgabe. Es sagt nur, dass '94' das Zeichen' '^ '' ist und dasselbe für das andere Zeichen. Es versucht, hilfreich zu sein, indem es Ihnen zusätzliche Informationen gibt. Ignoriere es einfach, wenn es nicht hilfreich für dich ist. – kaylum
Verwenden Sie den Typ "uint8_t". Wenn mit Bits gespielt wird, werden "unsignierte" Typen immer bevorzugt. –