Курс лекций по вычислительной технике

       

Кодирование отрицательных чисел


В ЦВМ, как правило, знак числа помещается в старшем разряде и  кодируется в двоичном коде: положительные числа имеют "0"  ,  а  отрицательные - "1".

Пусть сетка четырёхразрядная  ХХХХ

 Минимальное не представимое число  10000

      Положит.          Отриц. число

      числа             равное по мод.

мин.     0000              1000

макс.    0111              1111

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

     Обратный (инверсный или дополнительный до 1). Отрицательные  числа получаются из положительных путём замены единичных  разрядов на нулевые и наоборот. Особенность выполнения операций суммирования – необходимость циклического переноса. Недостатком данного вида  кодирования является увеличение времени сложения и наличие двух нулей 0000 и 1111.

В настоящее время наиболее употребительным  способом  представления

отрицательных чисел является представление их в дополнительном коде (до 2-х   для чисел меньше «1»).

Это представление основывается на ограниченности разрядной  сетки.

При этом отрицательное число, равное по модулю заданному положительному, образуется путём его вычитания из минимального выходящего за  данную разрядную сетку положительного числа, например,

          10000

- 0101

----

  1011

   Действительно, движение по оси действительных чисел влево от нуля с

учётом разрядной сетки приводит к  появлению  максимально представимого  числа.

         В действительности же мы перемещаемся в область чисел от "1" до"2", точнее "2(n-1)-1".

   

        -1                              0                                +1                          +2

    _______________________________________________________           -                   -1000¦-0111          -0001¦0000                  0111¦1000           1111¦10000


 

 

                                                                           0111

                   –8 – 7 –6 –5 –4 –3       –2       -1       0      +1     +2     +3    +4    +5    +6     +7     +8
 

  Правило перехода от положительных чисел к отрицательным:  получить обратный код и прибавить "1" к младшему разряду. Операция вычитания заменяется на операцию сложения с дополнительным кодом вычитаемого (с обратным кодом с добавлением "1" в младший разряд).

        

Основные свойства дополнительного кода.

Диапазон

-2n-÷2n-1 -1 (смещён в сторону отрицательных чисел)

Число нулей

Один

Изменение знака

Сумма инверсии всех  разрядов с 1 младшего разряда

Операция вычитания

Заменяется сложением с вычитаемым противоположного знака 

Переполнение

Когда оба слагаемых одинакового знака, а знак суммы отличен.

Изменение разрядности

Увеличение – размножением знака. Сокращение – округлением.

Преобразование отрицательного двоичного числа в  дополнительном коде в десятичное:- сложить десятичное значение знака   с положительной мантиссой

1010 = -8+2=-6

Преобразование отрицательного десятичного числа в  двоичное в дополнительном коде:- вычесть из десятичного значения числа десятичное значение знака. Остаток будет  мантиссой.      -3= -3-(-8)=5    =   1101

 


Содержание раздела