Пример 4.15

Найти значение (27 -3)10 в двоичной кодировке.

В данном случае появление 1 в регистре переполнения не интерпретируется как ошибка вычислений, поскольку на ее отсутствие указывают знаки чисел и результата. Порядок проверок и анализа корректности операций сложения-вычитания (Z = Z(1) + Z(2)) можно представить в виде таблицы:

Таблица 4.2.

Необходимо уточнить, что при выполнении вычитания отрицательного числа оно из дополнительного кода переводится в прямой, и вновь вместо вычитания производится сложение.

Подобным же образом число из дополнительного кода переводится в прямой при выполнении операции умножения; перемножаются всегда положительные числа по рассмотренным выше правилам; знаковый бит результата, очевидно, будет содержать 0, если знаки чисел одинаковы, и 1 при противоположных знаках.

Над множеством целых чисел со знаком операция деления не определена, поскольку в общем случае ее результатом будет вещественное число. Однако допустимыми являются операции целочисленного деления и нахождения остатка от целочисленного деления (те, что немного ранее было обозначено div и mod). Точнее, значения обеих величин находятся одновременно в одной процедуре, которая в конечном счете сводится к последовательности вычитаний или, еще точнее, сложений с дополнительным кодом делителя. Примем обозначения: Z(1) - делимое; Z(2) -делитель; L - результат целочисленного деления Z(1) на Z(2); R - остаток от целочисленного деления Z(1) на Z(2). Эти величины связаны между собой довольно очевидным соотношением:

из которого следует алгоритм нахождения значений L и R для заданных Z(1) и Z(2); его блок-схема для положительных Z(1) на Z(2) представлена на рис. 4.7.

Таким образом, операции div и mod, как, впрочем, и операция умножения, реализуются программно, т.е. сводятся к последовательности небольшого числа более простых действий. При этом уровень программной реализации может быть различным. Если реализация выполнена на уровне команд центрального процессора, то эти операции оказываются доступны из любого приложения (любой прикладной программы). Если же в системе команд процессора эти микропрограммы отсутствуют, их приходится описывать в виде процедур в самих приложениях и, следовательно, они будут доступны только в этих приложениях.

Читайте также:

Пример А.7

Характеристики канала связи

Блочное двоичное кодирование

Пример 4.4.

Кодирование и обработка в компьютере целых чисел без знака

Вернуться в оглавление: Теоретические основы информатики


double arrow
Сейчас читают про: