Представление чисел в памяти компьютера. Замена сложением вычитания, алгоритм работы процессора

381 прочитал

Числа в памяти компьютера хранятся в двоичном виде. Формат: знаковый и беззнаковый. Мы рассмотрим знаковый формат: в этом случае в знаковый разряд (самый старший, тот что слева) ставится единица (отрицательной число) и 0 (неотрицательное число). Например, число -7 в знаковом 8-разрядном представлении будет записано как 1 0 0 0 0 1 1 1

Числа в памяти компьютера хранятся в двоичном виде. Формат: знаковый и беззнаковый.

Но все дело в том, что компьютер не умеет вычитать, и заменяет операцию вычитания сложением. То есть 10 - 17 будет обработано как 10 + (-17). Конечно, 8-битного представления сейчас не встретишь, но для краткости записи будем использовать 1-байтовый формат.

Алгоритм простой:

  1. записываем прямой код первого числа в двоичной СС, помещаем в 8-разрядную ячейку памяти
  2. Это же делаем со вторым числом. Внимательно относимся к знаковому разряду
  3. Находим обратный код второго числа (меняем все нули на единицы, а единицы - на нули), не трогая знаковый разряд.
  4. Находим дополнительный код числа, прибавляя единицу к результату, полученному в пункте 3 данного алгоритма
  5. Складываем прямой код первого числа и дополнительный код второго
  6. Если в результате в знаковом разряде 0, то это и есть "положительный" ответ - переводим его из двоичной СС в десятичной.
  7. Но если в знаковом разряде получилась единица, то нужно инвертировать результат (знаковый разряд не трогаем) и снова прибавить единицу, то есть найти дополнительный код. Результат - искомое отрицательное число

Примеры и видео:

Вот пример, если из большего вычитается меньшее. Все "изи":

8-битное хранение
8-битное хранение
  • А вот пример, если из меньшего вычитаем большее. В знаковом разряде получается единица, а это значит, что надо провести обратные преобразования:
Числа в памяти компьютера хранятся в двоичном виде. Формат: знаковый и беззнаковый.-3

Или вот еще один пример:

Числа в памяти компьютера хранятся в двоичном виде. Формат: знаковый и беззнаковый.-4
  • Смотрите видео, все объясняю. Долго, правда - можно и промотать если что понятно: