Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комплект Информатика / Лабораторный практикум.doc
Скачиваний:
177
Добавлен:
22.05.2015
Размер:
6.45 Mб
Скачать

100.101

111.000

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

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

Рисунок 2 – Представление числа -6 в 4-битовом дополнительном коде

Понимание основных свойств представления в двоичном дополнительном коде ведет к алгоритму его декодирования. Если знаковый бит записи равен 0, то нужно просто читать значение, как если бы эта последовательность была двоичной записью числа. Например, 0110 является представлением числа 6, потому что 110 является двоичной записью шести. Если знаковый разряд равен 1, значит, перед нами отрицательное число и нам остается только найти его модуль. Переписываем исходную последовательность справа налево, пока не будет переписана 1, затем переписываем оставшиеся биты, дополняя их. И, наконец, расшифровываем полученную последовательность, как если бы она была двоичной записью числа.

Например, для того чтобы перевести последовательность 1010 в десятичную систему счисления, мы сначала определяем, что перед нами отрицательное число, так как знаковый разряд равен 1. Следовательно, переписываем запись как 0110. Определяем, что она является представлением числа 6, и делаем вывод о том, что исходный набор битов является представлением числа -6.

Сложение в двоичном дополнительном коде. Для сложения чисел в двоичном дополнительном коде применяется такой же алгоритм, как для двоичного сложения, только в этом случае все коды, включая результат операции, будут иметь одинаковую длину. Это означает, что если в результате сложения появляется дополнительный бит с левого края, он будет отсечен. Именно поэтому 0101 и 0010 в сумме дают 0111, а сумма 0111 и 1011 равна 0010 (0111 + 1011 = 10010, которая усекается до 0010).

Рассмотрим три примера сложения в дополнительном коде (рис. 3). В каждом случае десятичная запись была представлена 4-битовым кодом, а результат сложения опять переведен в десятичную систему счисления.

Рисунок 3 – Сложение чисел в двоичном дополнительном коде

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

111 3

110 2

101 1

100 0

011 -1

010 -2

001 -3

000 -4

Рисунок 4 - 3-битовое представление с избытком

Очевидно, что 3-битовое представление с избытком является представлением с избытком четыре, а 4-битовое представление с избытком является представление с избытком 8. Для того чтобы понять, почему это так, сначала переведите коды в десятичную систему счисления, как обычный двоичный код, и сравните полученные значения со значениями в таблице. В каждом случае вы обнаружите, что полученный результат превосходит код в представлении с избытком на восемь. Например, последовательность 1100 в двоичной системе является кодом 12, но в представлении с избытком она является кодом 4; последовательность 0000 в двоичной системе является кодом 0, а в представлении с избытком — кодом 8. Можно заметить, что код с одной 1 в позиции старшего разряда находится примерно посередине списка. Пусть он будет представлением нуля; коды до него используются для представления 1, 2, 3 и т. д., коды после него используются для -1, -2, -3 и т. д. Окончательный вариант таблицы 4-битовых кодов изображен на рис. 1.23. Можно заметить, что число 5 имеет код 1101, а число -5 имеет код 0011. Обратите внимание на то, что различие между представлением в двоичном дополнительном коде и избыточном коде заключается в том, что знаковый разряд у них имеет противоположное значение.

В отличие от хранения целых чисел, для хранения чисел с дробной частью требуется хранить не только двоичное представление числа, но также позицию разделительной точки. Общепринятым способом хранения дробей является представление с плавающей точкой:

Рисунок 5 – Структура представления записи числа с плавающей точкой на примере 1 байта

В этой структуре старший разряд бита является знаковым разрядом. Как и раньше, 0 в позиции знакового разряда означает, что число неотрицательное, 1 в позиции знакового разряда означает, что число отрицательное. Следующие три бита являются полем порядка в представлении с избытком 4, а оставшиеся четыре бита являются полем мантиссы.

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

Таблица 1 - Шестнадцатеричная система счисления

Последовательность

битов

Шестнадцатеричное

представление

0000

0

0001

1

0010

2

0011

3

0100

4

0101

5

0110

6

0111

7

1000

8

1001

9

1010

A

1011

B

1100

C

1101

D

1110

E

1111

F

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