Реклама:

На протяжении всей истории цифровых компьютеров для представления отрицательных чисел использовались 4 различные системы. Первая из них называется системой со знаком. В такой системе крайний левый бит - это знаковый бит

(О - плюс, 1 - минус), а оставшиеся биты показывают абсолютное значение числа.

Во второй системе, которая называется дополнением до единицы, тоже присутствует знаковый бит (0 - плюс, 1 - минус). Чтобы сделать число отрицательным, нужно заменить каждую единицу нулем и каждый ноль единицей. Это относится и к знаковому биту. Система дополнения до единицы уже устарела.

Третья система, дополнение до двух, содержит знаковый бит (0 - плюс, 1 - минус). Отрицание числа происходит в два этапа. Сначала каждая единица меняется на ноль, а каждый ноль - на единицу (как и в системе дополнения до единицы). Затем к полученному результату прибавляется единица. Двоичное сложение происходит точно так же, как и десятичное, только перенос совершается в том случае, если сумма больше 1, а не больше 9. Например, рассмотрим преобразование числа 6 в форму с дополнением до двух:

♦ Число +6:

00000110

♦ Число -6 в системе с дополнением до единицы:

11111001

♦ Число -6 в системе с дополнением до двух:

11111010

Если нужно совершить перенос из крайнего левого бита, он просто отбрасывается.

В четвертой системе, которая для га-разрядных чисел называется системой со смещением на 2т_1, число представляется как сумма этого числа и 2т_1. Например, для 8-разрядного числа (т = 8) - это система со смещением на 128, в ней число сохраняется в виде суммы исходного числа и 128. Следовательно, -3 превращается в -3 + 128 = 125, и это число (-3) представляется 8-разрядным двоичным числом 125 (01111101). Числа от -128 до +127 выражаются числами от 0 до 255 (все их можно записать в виде 8-разрядного положительного числа). Отметим, что эта система соответствует системе с дополнением до двух с обращенным знаковым битом. В табл. А.2 представлены примеры отрицательных чисел во всех четырех системах.

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

Мы считаем это проблемами, поскольку хотим иметь систему кодировки, в которой:

♦ существует только одно представление нуля;

♦ количество положительных чисел равно количеству отрицательных.

Таблица А.2. Отрицательные 8-разрядные числа в четырех различных системах

N десятичное

N двоичное

-ы в системе со знаком

-ы дополнение до единицы

-ы дополнение до двух

-N смещение на 128

00000001

10000001

11111110

11111111

011111111

00000010

10000010

11111101

11111110

01111110

00000011

10000011

11111100

11111101

01111101

00000100

10000100

11111011

11111100

01111100

00000101

10000101

11111010

11111011

01111011

00000110

10000110

11111001

11111010

01111010

00000111

10000111

11111000

11111001

01111001

00001000

10001000

11110111

11111000

01111000

00001001

10001001

11110110

11110111

01110111

00001010

10001010

11110101

11110110

01110110

00010100

10010100

11101011

11101100

01101100

00011110

10011110

11100001

11100010

01100010

10101000

10101000

11010111

11011000

01011000

00110010

10110010

11001101

11001110

01001110

00111100

10111100

11000011

11000100

01000100

01000110

11000110

10111001

10111010

00111010

01010000

11010000

10101111

10110000

00110000

01011010

11011010

10100101

10100110

00100110

01100100

11100100

10011011

10011100

00011100

01111111

11111111

10000000

10000001

00000001

Не существует

Не существует

Не существует

10000000

00000000

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

Преобразование чисел из одной системы счисления в другую || Оглавление || Двоичная арифметика