Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Разные интерпретации одного и того же двоичного числа.
Для примера возьмём число 0b10010101. Если это число рассматривать как беззнаковое целое, то оно равно 149. Если же это число определено как знаковое целое, то оно равно – 107. Булева алгебра логики - это алгебра, состоящая из нулей и единиц; или истины (TRUE)и лжи (False). В программировании булева алгебра логики встречается очень часто. Например, при создании различных управляющих структур (if, while, for ). В булевой алгебре определены понятия логических операций, таких как «И». «ИЛИ», «НЕ» и т.д. К примеру, выражение «Стол имеет 4 ножки и стоит на полу» будет правдой, если выполняются оба условия, если же у стола отличное от 4-х количество ножек и/или он установлен не на пол, то выражение ложно. Т.е. если не выполнено одно из условий, то выражение ложно, если выполнены оба, то - правда. Если же в выражении «Стол имеет 4 ножки и стоит на полу» «И» заменить на «ИЛИ», то выражение станет ложью, только если стол одновременно не стоит на полу и у него не 4 ножки. Операция с использованием «И» называется конъюнкция, а с использованием «ИЛИ» - дизъюнкция. Рассмотрим их подробнее. Конъюнкция В программировании конъюнкция обозначается обычно как '& & ' или как «AND», и читается как 'И'. Таблица истинности для конъюнкции представлена в таблице 3.
Где А и В – выражения, принимающие значения правда или ложь (TRUE и FALSE соответственно). Операция конъюнкции ещё называется операцией логического умножения. Это видно, если FALSE заменить на 0, а TRUE на 1. (см. таблицу 4).
Дизъюнкция В программировании дизъюнкция обозначается обычно как '||' или «OR», читается как 'ИЛИ'. Вот таблица истинности для дизъюнкции:
Дизъюнкция также называется логическим сложением. С тем условием, что 1 AND 1 = 1. Таблица истинности для дизъюнкции в случае замены FALSE на 0, а TRUE на 1 представлена в таблице 5.
Равносильность Обозначается обычно как '==' (двойной знак равно) (см. таблицу 6). Вот его таблица истинности:
Если два значения равны, то условие верно, если не равны, то ложно.
Отрицание Отрицание является унарной операцией, т.е. выполняется с одним операндом. Обозначается как знак '! '. Таблица истинности представлена в таблице 7:
Читается как 'НЕ'. Т.е. (! TRUE = FALSE) Сложение по модулю 2 Последней важной функцией является сложение по модулю 2. Ещё эта функция называется «исключающее ИЛИ». Обычно эта операция обозначается как «^» или «XOR». Её таблица истинности представлена в таблице 8
Таблица истинности в которой FALSE заменено на 0, а TRUE на 1, представлена в табл 9.
А как и следует из названия, эта операция представляет собой сложение по модулю 2. Т.е. 1+1=2. Если взять по модулю 2 (остаток от деления на 2), то выражение 1+1=0.
Различные обозначения булевых операций.
Приоритет операций Приоритет булевых операций определён следующим образом: 1. отрицание (! ) 2. конъюнкция (И) 3. дизъюнкция (ИЛИ), сложение по модулю 2 (XOR) Но надёжнее определять порядок выполнения операций с помощью скобок. Основные законы булевой алгебры Две формулы булевой алгебры равносильны (равны, эквивалентны), если равны сопоставляемые им таблицы истинности (т.е. они принимают одинаковые значения на всех наборах значений аргументов). Ниже даны основные законы булевой алгебры, позволяющие проводить тождественные преобразования формул булевой алгебры: 1. Закон двойного отрицания: 2. Закон коммутативности (от перестановки аргументов результат не меняется): 3. Закон ассоциативности (порядка вычислений): 4. Закон дистрибутивности (раскрытия скобок): 5. Правила де Моргана: 6. Правила операций с константами 0 и 1: 7. Правила операций с переменной и её инверсией: Справедливость основных законов (тождеств) булевой алгебры может быть доказана перебором всех значений переменных, входящих в соотношения. Из основных законов можно легко получить следующие важные соотношения: 1. Закон поглощения: 2. Закон идемпотентности (повторное применение не даёт ничего нового): 3. На основании закона дистрибутивности, а также 7-го и 6-го законов:
Смещение двоичных чисел.
Если представить двоичное число как регистр смещения, то мы можем смещать имеющиеся там значения вправо или влево. При этом если сместить число влево на N разрядов, то его значение увеличится в 2N раз. При смещении вправо на N разрядов, значение уменьшается в 2N раз. Т.о. можно легко производить деление и умножение на числа, равные степени двойки. Здесь стоит помнить. Что все биты, выходящие при смещении за разрядность, будут потеряны. Например, возьмём число 0b110011. Сместим его на 3 разряда вправо. 0b000110. И теперь обратно на 3 разряда влево: 0b110000. Аналогично, если у вас разрядность числа ограничена 8 битами (1 байт), то при смещении влево могут быть потеряны старшие разряды. Например, возьмём тоже число 0b110011 и сместим его на 3 разряда влево. Получим 0b011000. Смещая обратно, получим: 0b000110. Как видите, в обоих случаях мы потеряли значащие биты.
Карты Карно. Популярное:
|
Последнее изменение этой страницы: 2017-03-11; Просмотров: 387; Нарушение авторского права страницы