Я программирования с Keil uVision 4.Keil uVision (компилятор C51), что означает унарный оператор «!»?
У меня есть некоторый код, как это:
sbit X = P3^3; // X is third bit of P3 register
...
while (1) {
X = !X; // X equals not X ?!
if (X == 0)
printf("0");
else
printf("1");
}
я могу контролировать `P3^3
общий входной контакт, потому что на этом выводе я уже получил PIR (импульсный инфракрасный датчик). Это дает мне 1 на этой линии, когда она мигает, 0 когда она спит.
P3^3
когда вытягивается вверх до 1
, выход (как и ожидалось) 10101010101010..
Когда он по-прежнему 0, выход (не ожидается) 0000000000000..
Поведение Я что я описал выше, учитывая, что sbit X
установлен/не установлен PIR ..
Итак, вопрос в том, что означает оператор !
в компиляторе Keil C51?
В документации указано, что 'sbit' не может быть объявлен внутри функции, поэтому я также предполагаю, что этот фрагмент кода удален? Нельзя указывать, что с помощью elipsis ('...') – Clifford
Чтобы быть ясным, было бы полезно описать вывод «ожидаемый», когда ввод будет низким, так как при анализе я думаю, что он корректно ведет себя * (т.е. в кодировке), учитывая аппаратное обеспечение и семантику расширения языка 'sbit'. – Clifford
Да, область действия глобальная. Я ожидаю почти того же выхода, что и у меня, когда линия была высокой. Прати, я думал, что '!' Является тем же самым '~'. –