– Сложить эти два числа (уменьшаемое и вычитаемое в дополнительном коде).
– При сложении бит переноса не учитывать.
– Полученный результат – разность.
Например, найдем разность между числами 13 и 5
Запишем в двоичном коде: 13 (00001101), 5 (00000101).
Переведем в дополнительный код вычитаемое: (5 (11111011).
Бит переноса из старшего разряда отбрасываем. Результат: 10002=810.
Деление в двоичной системе происходит так же как в десятичной системе счисления.
Правила деления чисел сводятся к сдвигу разрядов числа и вычитанию. Вычитание сводится к сложению чисел, одно из которых представлено в дополнительном коде.
При выполнении действий двоичной арифметики возможны ситуации, приводящие к неточности результата или ошибке. Так, при использовании целочисленного представления возможна ситуация потери старших разрядов результата (в случае превышения разрядов сетки). Еще одна парадоксальная ошибка «целочисленной арифметики» – при использовании знакового формата при сложении или умножении положительных чисел возможно получение результата, неверного по знаку (с единицей в знаковом бите) и модулю (без учета знакового бита). Для форматов с плавающей точкой возможна другая опасность: выход за границу допустимого диапазона значений. Это может произойти, если порядок результата оказывается больше максимального возможного значения. Обычно в такой ситуации выполнение программы прерывается по ошибке – «арифметическое переполнение». Схожая ситуация, когда результат меньше минимально возможного приведет к исчезновению числа (превращению в нуль, что опасно, например, при делении).
Булевы функции. Сложение по модулю два
Говоря об арифметических операциях с двоичными числами нельзя не сказать о логических операциях с ними. В XIX веке английский математик Джордж Буль разработал основные положения алгебры логики, ныне используемые для формального описания узлов ЭВМ. В алгебре логики (булевой алгебре) различают двоичные переменные и булевы функции.
Двоичные переменные могут принимать два значения: 0 и 1. Они обозначаются символами x1, x2, x3,…
Булевы функции зависят от двоичных переменных. Они, как и аргументы, могут принимать лишь два значения: 0 или 1, и обозначаются как f (x1,x2,x3,…) Булевы функции принято задавать таблицами истинности, где для всех наборов переменных указываются соответствующие им значения функции. Вместо значений 0,1 может использоваться любая другая пара подходящих символов, например false и true (F и T, «ложь» и «истина»). Элементарные булевы функции служат аргументами еще более сложных логических функций.
К элементарным логическим функциям относятся:
Логическое отрицание – инверсия (логическая функция НЕ). Логическим отрицанием переменной x называется такая булева функция f1 (x), которая имеет