Я не понимаю результат следующего кода:
unsigned char p = 170;
p = (~p) >> 4 & 255;
Результат: 245, и я не понимаю, почему.
Сначала (~ p) будетприменяется то, что составляет от 10101010 до 01010101
Это положительное число, поэтому >> 4 приведет к 00000101 в моем понимании.
Но, похоже, это 11110101, и я не понимаю, почему.В моем понимании сдвиг положительного числа вправо вставит 0, а не 1.