Виды информации и ИТ ее обработки. Серия «Информатика и ИТ». Nikolay Morozov

Виды информации и ИТ ее обработки. Серия «Информатика и ИТ» - Nikolay Morozov


Скачать книгу
мы умножаем первое число на каждый разряд второго и записываем полученные результаты под первой чертой, одно под другим со сдвигом. Затем полученные промежуточные результаты складываем с учетом сдвига. Однако в случае с двоичными числами имеется одно существенное отличие. Так как любой разряд двоичного числа либо ноль, либо единица, то промежуточное умножение сильно облегчается. В самом деле, любое число, умноженное на единицу, равно самому себе. Любое число, умноженное на ноль, равно нулю. Именно поэтому умножение двух двоичных чисел сводится к операциям сдвига и сложения. Это очень важно для построения вычислительных машин. Для реализации операций сложения и умножения нужны только сумматоры и сдвиговые регистры.

      Вычитание и деление. Для того чтобы упростить (для машинной обработки) операцию вычитания, был придуман так называемый «дополнительный код». Можно сказать, что при помощи этого кода записываются отрицательные числа. Чтобы записать двоичное число в дополнительном коде:

      – необходимо инвертировать все его разряды (т.е. перевести число в обратный код — заменить его содержимое на противоположное),

      – а затем прибавить единицу.

      Таблица 1.2.Запись числа в дополнительном коде

      Правило вычитания двух двоичных чисел:

      – Перевести вычитаемое в дополнительный код.

      – Сложить эти два числа (уменьшаемое и вычитаемое в дополнительном коде).

      – При сложении бит переноса не учитывать.

      – Полученный результат – разность.

      Например, найдем разность между числами 13 и 5

      Запишем в двоичном коде: 13 (00001101), 5 (00000101).

      Переведем в дополнительный код вычитаемое: (5 (11111011).

      Бит переноса из старшего разряда отбрасываем. Результат: 10002=810.

      Деление в двоичной системе происходит так же как в десятичной системе счисления.

      Правила деления чисел сводятся к сдвигу разрядов числа и вычитанию. Вычитание сводится к сложению чисел, одно из которых представлено в дополнительном коде.

      При выполнении действий двоичной арифметики возможны ситуации, приводящие к неточности результата или ошибке. Так, при использовании целочисленного представления возможна ситуация потери старших разрядов результата (в случае превышения разрядов сетки). Еще одна парадоксальная ошибка «целочисленной арифметики» – при использовании знакового формата при сложении или умножении положительных чисел возможно получение результата, неверного по знаку (с единицей в знаковом бите) и модулю (без учета знакового бита). Для форматов с плавающей точкой возможна другая опасность: выход за границу допустимого диапазона значений. Это может произойти, если порядок результата оказывается больше максимального возможного значения. Обычно в такой ситуации выполнение программы прерывается по ошибке – «арифметическое переполнение». Схожая ситуация, когда результат меньше минимально возможного приведет к исчезновению числа (превращению в нуль, что опасно,


Скачать книгу