Предположим, у вас есть следующий код C.
unsigned char a = 1;
printf("%d\n", ~a); // prints -2
printf("%d\n", a); // prints 1
Я удивлен, увидев -2 напечатанных в результате ~ 1 преобразования:
Противоположность 0000 0001 - 1111 1110. Это не что иное, как -2.
Что мне здесь не хватает?