Представление в двоичном дополнительном коде

Наиболее распространенной системой представления целых чисел в современ­ных компьютерах является представление в двоичном дополнительном коде (two's complement notation). В этой системе используется фиксированное число битов для представления числового значения.

В современном оборудовании используется кодировка, в которой каждому значению отводится 32 бита. Такой подход позволяет хранить большой диапазон чисел. Для наглядности рассмотрим этот подход на коротких си­стемах представления.

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

Такая таблица кодов строится, начиная с цепочки, состоящей из одних нулей, затем отсчитываются значения до цепочки, состоящей из нуля, за кото­рым следуют единицы. Эти наборы битов являются представлениями значений 0, 1, 2, 3 и т. д. Последовательности, которые являются кодами отрицательных чисел, начинаются с цепочки битов, состоящей из одних единиц. Затем отсчиты­ваются в обратном порядке до цепочки, содержащей единицу, за которой следу­ют нули. Эти наборы битов представляют числа -1, -2, -3 и т. д. Если труд­но считать в обратном порядке в двоичной системе счисления, можно начать считать с конца таблицы, с цепочки, состоящей из единицы и нулей, и считать до цепочки, состоящей из единиц.

Надо обратить внимание на то, что в представлении в двоичном дополнительном коде крайний слева разряд обозначает знак числа. Поэтому его называют знаковым разрядом (sign bit). Знаковый разряд отрицательных чисел равен 1, а положительных чисел — 0.

Есть удобное соотношение между записью положительного и отрица­тельного чисел, одинаковых по модулю. Они совпадают, если их читать справа налево, до первой единицы включительно, а с этого места они являются дополне­ниями друг друга. Дополнением набора битов является набор битов, который получается путем замены всех нулей на единицы и наоборот, т.е. дополнении до N-1, где N — минимальное число, вызывающее перенос в следу­ющий разряд при данном количестве разрядов (для 4-битового кода это 16). Это дополнение называют также инверсией. На­пример, 0010 и 1110 — дополнения друг друга.

 

             Наборы из трех бит                Наборы из четырех битов

Набор битов Значение
011 3
010 2
001 1
000 0
111 -1
110 -2
101 -3
100 -4
Набор битов Значение
0111 7
0110 6
0101 5
0100 4
0011 3
0010 2
0001 1
0000 0
1111 -1
1110 -2
1101 -3
1100 -4
1011 -5
1010 -6
1001 -7
1000 -8

 

 

Рис. 1.9. Таблицы кодов 3-х и 4-х битовых

 

Например, возьмем два числа в 4-битовом представ­лении 2 и -2. Они заканчиваются на 10, но запись числа 2 начинается с 00, а числа -2 — с 11. Это наблюдение может помочь найти алгоритм для получения записи отрицательного числа из записи положительного и наоборот, когда эти числа равны по модулю. Мы просто переписываем исходную последо­вательность справа налево до тех пор, пока не будет переписана единица, затем мы переписыва­ем оставшиеся разряды, заменяя их дополнениями (т.е. заменяя нули на единицы, а единицы на нули). Обратите внима­ние, что самое маленькое отрицательное число в представлении в дополнитель­ном коде не имеет положительного эквивалента.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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