Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В главе 6.2. мы говорили об использовании логических операций and, or и not в логических выражениях. И имели в виду выражения, принимающие логические значения истина или ложь. Например, логическое выражение (x >= a) and (x <= b) принимает значение истина, если точка x принадлежит отрезку [a, b].
Язык Basic имеет полный набор логических операций:
NOT, AND, OR, XOR, EQV, IMP.
Операции перечислены по убыванию приоритета. Операции сравнения имеют более высокий приоритет, чем логические операции. Значения результатов логических операций представлены в таблице 6.2.
Табл.6.2. Значения результатов логических операций.
Левая часть А | Правая часть В | NOT A | A AND B | A OR B | A XOR B | A EQV B | A IMP B |
Ложь | Ложь | Истина | Ложь | Ложь | Ложь | Истина | Истина |
Ложь | Истина | Истина | Ложь | Истина | Истина | Ложь | Истина |
Истина | Ложь | Ложь | Ложь | Истина | Истина | Ложь | Ложь |
Истина | Истина | Ложь | Истина | Истина | Ложь | Истина | Истина |
В языке Basic логические константы представляются числами: ложь –нулевое значение, истина – ненулевое. Поэтому логические операции можно применять, если в выражениях участвуют произвольные целые числа.
Допустимы такие выражения, как
10 AND 3
22 OR –5
5 XOR 11
Участвующие в вычислениях числа представляются в двоичной форме записи и операции применяются поразрядно, т.е. к каждому биту. Необходимо учесть, что целые отрицательные числа представляются в компьютере в дополнительном коде. Значения результатов логических операций над числами представлены в таблице 6.3.
Табл.6.3. Значения результатов логических операций над числами.
Разряд А | Разряд В | NOT A | A AND B | A OR B | A XOR B | A EQV B | A IMP B |
Пример 1. Вычислить значение выражения 11 AND 3.
Решение. Переведем заданные числа в двоичную систему счисления и приведем к одной разрядной сетке, в нашем примере достаточно 4 разряда. Буква В означает, что значение является двоичной константой.
11 = 1011В 2 = 10В
Выполним поразрядно операцию AND:
AND
0010
Получили 11 AND 3. = 1011B AND 10B = 10B = 2
Пример 2. Вычислить значение 22 OR -5.
Решение. Переведем заданные числа в двоичную систему счисления. Отрицательное число –5 представим в дополнительном коде. Приведем числа к одной разрядной сетке, в нашем примере достаточно 6 разрядов.
22 = 010110В
-5 доп.код = 111011В
Чтобы получить дополнительный код числа -5 отбросим знак минус и вычтем из числа единицу, получим число 4. Переведем число 4 в двоичную систему счисления, 4 = 000100B. Заменим все единицы на нули, а нули на единицы, получим 111011В.
Выполним поразрядно операцию OR:
OR
111011
В результате получили число в дополнительном коде 111111В. Старший разряд числа знаковый, т.к. он равен единице, значит получили отрицательное число в дополнительном коде. Выполним перевод из дополнительного кода в прямой: заменим все нули на единицы, а единицы на нули, затем прибавим единицу, полученное число переведем в двоичную систему счисления и припишем знак минус.
111111В = 000000В + 1В = 1В = -1
Получили 22 OR –5 = 010110 OR 111011 = 111111В = -1.
Дата публикования: 2015-01-14; Прочитано: 440 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!