Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Sergey12 Гость
|
Добавлено: Ср Мар 13 2002 10:46 Заголовок сообщения: help с логическим выражением. PLS! |
|
|
Нужно вычислить лог выражение. (NOT(51h) AND 1000110B)>NOT(5h)AND 22) |
|
Вернуться к началу |
|
|
Alexy
Зарегистрирован: 22.10.2003 Сообщения: 48
|
Добавлено: Ср Мар 13 2002 12:30 Заголовок сообщения: Re: help с логическим выражением. PLS! |
|
|
посмотри на операторы, как на ф-ции. Например: integer operator NOT(constant integer); integer operator AND(constant integer); boolean operator > (constant integer, constant integer);
Тогда: (NOT(51h) AND 1000110B)>NOT(5h)AND 22) раскладвывается на такой pseudo three address code:
integer _tmp1 = operator NOT(51h); integer _tmp2 = operator AND(01000110B); integer _tmp3 = operator NOT(5); integer _tmp4 = operator AND(22); boolean _tmpResult = operator >(_tmp2, _tmp4);
Кстати любой компилятор генерирует не такой, но похожий three address code после анализа синтаксиса. |
|
Вернуться к началу |
|
|
Alexy
Зарегистрирован: 22.10.2003 Сообщения: 48
|
Добавлено: Ср Мар 13 2002 15:09 Заголовок сообщения: Re: help с логическим выражением. PLS! |
|
|
Поправка:
конечно integer operator AND(constant integer, constant integer);
и
integer _tmp2 = operator AND(_tmp1,01000110B);
ит.д. |
|
Вернуться к началу |
|
|
|