Ich bin mir nicht sicher, wie man Buchstaben hinter 255 automatisch entsperrt.C - Warum werden Zahlen zu einem Char bei 255 zurückgesetzt?
char f;
f = 'k';
printf("%d\n", f);
Ergebnisse in 107
. Keine Überraschung.
f += 500;
printf("%d\n", f);
Ergebnisse in 95
. Es scheint, dies wurde von 255.
printf("%c\n", 607);
Ergebnisse in _
geteilt Modulo. Es gibt viel mehr Zeichen, die sich auch in die Tausende erstrecken. Wie kommt es, dass das Hinzufügen eines Wertes und das Ausführen eines Chars nach 255 eine Modulo-Operation erzwingt? Ich muss für eine Hash-Funktion über 255 hinausgehen.
'sizeof (char)' ist ein Byte . Also könnte es nicht größer als 255 sein. Wenn du mehr brauchst, benutze 'wchar_t' oder seine Analoga. – Ari0nhh
Ich ermutige Sie, das zu lesen: [Was jeder Programmierer absolut, positiv über Kodierungen und Zeichensätze wissen muss, um mit Text zu arbeiten] (http://kunststube.net/encoding/) – bolov
@ Ari0nhh Es stimmt, dass 'sizeof (char) 'ist eins, es ist nicht unbedingt wahr, dass es * nicht größer als 255 sein kann.' sizeof (char) 'kann 1 sein, aber es könnte * aus 16 Bits bestehen. –