Представление чисел со знаком в обратном коде

Обратный код — Википедия

представление чисел со знаком в обратном коде

Для представления чисел со знаком в ЭВМ применяют прямой, обратный и дополнительный коды. Общая идея построения кодов такова. Код. Достоинства представления чисел с помощью прямого кода[править] . инвертированием представления модуля числа (получается обратный код);; если число . Лучше для умножение использовать прямой код (бит под знак). Дополнительный код (англ. two's complement, иногда twos-complement) — наиболее распространённый способ представления отрицательных целых чисел В англоязычной литературе обратный код называют первым дополнением, . В системе p-адических чисел изменение знака числа осуществляется.

Тогда числа будут выглядеть следующим образом: Удобство заключается в том, что нам не обязательно проделывать операции сложения с каждой парой бит, если мы знаем, что на этом отрезке в числах стоят либо единицы, либо нули. Таким образом, на этом отрезке в получившемся числе тоже будут либо только единицы, либо только нули.

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

Обратный код

Вычитание тоже выполняется просто: Однако умножение с числами, представленными дополнительным кодом, выполнять не всегда оптимально: Лучше для умножение использовать прямой код бит под знак. Обычно такой алгоритм работает быстрее, чем выполнение операции напрямую с двоичными числами.

Для деления обычно тоже лучше использовать прямой код. Достоинства представления чисел с помощью кода с дополнением до двух[ править ] Возможность заменить арифметическую операцию вычитания операцией сложения и сделать операции сложения одинаковыми для знаковых и беззнаковых типов данных, что существенно упрощает архитектуру процессора и увеличивает его быстродействие.

Недостатки представления чисел с помощью кода с дополнением до двух[ править ] Ряд положительных и отрицательных чисел несимметричен, но это не так важно: В отличие от сложения, числа в дополнительном коде нельзя сравнивать как беззнаковые, или вычитать без расширения разрядности. Несмотря на недостатки, дополнение до двух в современных вычислительных системах используется чаще.

представление чисел со знаком в обратном коде

Результат записывается в память на место, специально зарезервированное для среднего байта суммы. Со старшим байтом поступают аналогично. Таким образом, при использовании арифметики тройной точности требуются в три раза большие объем памяти и время на операции сложения по сравнению с арифметикой одинарной точности. Кроме того, в случае возникновения прерываний необходимо временно хранить содержимое регистра переносов то же самое для вычитания, умножения и деления.

Представление дробных чисел в ЭВМ.

Дополнительный код — Википедия

Числа с фиксированной и плавающей запятой В ЭВМ числа представлены в двоичной форме и под число отводится N разрядов. N-разрядное двоичное число называют машинным словом.

представление чисел со знаком в обратном коде

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

Рассмотрим, как обращаться с дробной частью числа, как представлять очень большие и очень малые числа. Используют две формы представления чисел: Числа с фиксированной запятой Первые ЭВМ были машинами с фиксированной запятой, причем запятая фиксировалась перед старшим разрядом.

представление чисел со знаком в обратном коде

Например, у нас два числа, представленных в прямом коде. Одно число положительное, другое — отрицательное и эти числа нужно сложить. Однако просто сложить их. Сначала компьютер должен определить, что это за числа. Выяснив, что одно число отрицательное, ему следует заменить операцию сложения операцией вычитания. Потом, машина должна определить, какое число больше по модулю, чтобы выяснить знак результата и определиться с тем, что из чего вычитать.

В итоге, получается сложный алгоритм.

Прямой, дополнительный и обратный коды

Куда проще складывать числа, если отрицательные преобразованы в дополнительный код. Это можно увидеть на примерах ниже. Операция сложения положительного числа и отрицательного числа, представленного в прямом коде Прямой код числа 5: