Dies ist ein Ergebnis der C-Integer-Werberegeln. Im Wesentlichen werden die meisten Variablen, die in einen Ausdruck gehen, "befördert", so dass Operationen wie diese die Genauigkeit nicht verlieren. Dann wird es als int
in printf
übergeben, gemäß den Regeln von C's variablen Argumenten.
Wenn Sie möchten, wonach Sie suchen, müssen Sie in unsigned char
:
Hinweis: Die Verwendung von %c
, wie in Stephen's Kommentar angegeben, funktioniert nicht, da %c
auch eine ganze Zahl erwartet.
EDIT: Alternativ könnten Sie dies tun:
%Vor%oder
%Vor%Tags und Links c bit-manipulation unsigned-char