PF для битовых операций (включая OR) считается не так, как для арифметических, не по переменам знаков.
Интерпретировать эту арифметику очень просто: 0x9669 это просто битовый массив размером 16, т.е. числам 0...15 поставлено в соответствие значение 0 или 1. Макрос PF_LOG4(n) реализует это соответствие: для числа (n) в диапазоне 0..15 он возвращает поставленное ему в соответствие значение -- 0 или 1. Макрос PF_LOG(n) сравнивает значения, которые дает PF_LOG4() для четырех старших и четырех младших разрядов своего аргумента (n). Если эти значения совпадают, значит PF должен быть взведен, иначе PF должен быть сброшен.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
