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

В этом уроке кратко рассмотрим как хранятся целочисленные числа в памяти компьютера.

Допустим у нас есть тип byte. В одном байте у нас восемь бит. Двоичное представление значения типа byte в памяти будет таким:

Представление типа byte в памяти фото

Старший бит в целых числах со знаком используется для обозначения знака. Для положительных чисел он всегда равен 0. В отрицательных числах старший бит всегда равен 1. Такая запись числа в двоичной системе счисления называется прямой код.

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семи разрядное число. Например:

0 0001101 – положительное число
1 0001101 – отрицательное число

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

Для отрицательных чисел используется так называемый дополнительный код. Это связано с удобством выполнения операций над числами электронными устройствами компьютера.

Для перевода отрицательного числа в дополнительный код используется следующий алгоритм:

  1. Все разряды числа (кроме первого разряда) инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011.
  2. Далее следует прибавить единицу к получившемуся инверсией числу:
    1 1110011 + 1 = 1 1110100

Презентацию с видео можно скачать на Patreon.

Read also:
Trustpilot
Trustpilot
Comments