Это немного странно. Я просто играю с неподписанным типом символа и отрицательными значениями. У меня есть следующий код.
#include <stdio.h>
int main(int argc, char* agrv[]){
unsigned char c = -3;
printf("%d, %u, %d, %u\n", c, c, ~c, ~c);
}
Вывод,
253, 253, -254, 4294967042
Не могу разобраться с последними тремя значениями. Что на самом деле делают% d и% u?