Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

прямой,обр,доп коды

.doc
Скачиваний:
53
Добавлен:
29.05.2015
Размер:
105.98 Кб
Скачать

Тема 3: Представление целых чисел в компьютере.

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

Любая информация (числа, текстовая, графическая и т. д.) представляется в ЭВМ в виде двоичных кодов фиксированной или переменной длины. Отдельные элементы двоичного кода, имеющие значение 0 или 1, называют битами. Двоичный код состоящий из 8 разрядов носит название байта.

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

Представление целых чисел без знака в компьютере

Целые числа без знака обычно  занимают  в  памяти  компьютера  один, два или 4 байта.    

В  однобайтовом  формате  числа принимают  значения  от  000000002   до   111111112.

В двубайтовом формате — от  00000000 000000002   до   11111111 111111112.

В четырехбайтовом -  от 00000000 00000000 00000000 000000002 до 11111111 1111111 11111111 111111112

Диапазоны значений целых чисел без знака

Формат числа в байтах 

Диапазон 

Запись с порядком

Обычная запись

1

0 ... 28–1

0 ... 255

2

0 ... 216–1

0 ... 65535

4

0 ... 232–1

0…429967295

Например, в однобайтовом формате число 62=1111102 имеет вид:

В двубайтовом формате число 1402=101011110102 имеет вид:

Пример 1. Для хранения целого числа без знака используется один

байт. Записать представление числа 19 в компьютере.

1 шаг: Переведем число 19 из десятичной системы счисления в двоичную.

2 шаг: Так как для представления числа в компьютере выделен 1 байт, то код числа должен содержать 8 знаков (8 бит). Поэтому впереди числа дописываем 3 незначащих нуля.

0

0

0

1

0

0

1

1

Задания.

1. Запишите числа в беззнаковом коде (формат 1 байт):

 а) 31;      б) 163;    в) 65;    г) 128. 

2. Найдите десятичные представления чисел, записанных в беззнаковом коде:

 а) 0 1011000;      б) 1 0011011;     в) 0 1101001;      г) 1 1000000. 

Представление целых чисел со знаком

Так же как беззнаковые целые числа целые со знаком обычно  занимают  в  памяти  компьютера  один, два или 4 байта.

Диапазоны значений целых чисел со знаком

Формат числа в байтах

Диапазон

Запись с порядком

Обычная запись

1

–27 ... 27–1 

–128 ... 127 

2

–215 ... 215–1 

–32768 ... 32767

4

–231 ... 231–1 

–2147483648 ... 2147483647

Самый левый (старший бит) разряд определяет знак числа.   Если он равен 0, число положительное, если 1, то отрицательное.

Например, в однобайтовом формате число 46=1011102 имеет вид:

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

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

Обратный код. Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.

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

Например, в однобайтовом формате числа 27 и -27 имеют вид:

Число

Прямой код

Обратный код

Дополнительный код

27

00011011

00011011

00011011

-27

10011011

11100100

11100101

Пример 1. Найти прямой, обратный и дополнительный код представления числа 13 в однобайтном формате.

1 шаг: Переведем число 13 из десятичной системы счисления в двоичную.

2 шаг: Для представления числа в компьютере выделен 1 байт. Старший бит занимает знак числа – 0. Сам код числа должен занимать 7 бит. Таким образом прямой код числа 13

0

0

0

0

1

1

0

1

Так как для положительных чисел прямой, обратный и дополнительный код совпадает, то ответ 00001101.

Пример 2. Найти прямой, обратный и дополнительный код представления числа -23 в однобайтовом формате.

1 шаг: Переведем число -23 из десятичной системы счисления в двоичную. Получим

-2310=-101112

2 шаг: Прямой код числа в однобайтовом формате, учитывая, что старший бит занимает знак числа -1, имеет вид

1

0

0

1

0

1

1

1

3 шаг: Найдем обратный код числа -23, заменив все цифры числа на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Имеем,

1

1

1

0

1

0

0

0

4 шаг: Найдем дополнительный код числа -23, добавив 1 к младшему разряду обратного кода.

1

1

1

0

1

0

0

1

Ответ: прямой код – 10010111; обратный – 11101000; дополнительный – 11101001.

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

Число

Прямой код

Обратный код

Дополнительный код

0

00000000

00000000

00000000

1

00000001

00000001

00000001

-1

10000001

11111110

11111111

5

00000101

00000101

00000101

-5

10000101

11111010

11111011

8

00001000

00001000

00001000

-8

10001000

11110111

11111000

120

01111000

01111000

01111000

-120

11111000

10000111

10001000

127

01111111

01111111

01111111

-127

11111111

10000000

10000001

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

Распространёнными формами представления чисел со знаками является их представление в прямом, обратном и дополнительном коде. Прямой код числа образуется кодированием знака числа нулём, если число положительно и единицей, если число отрицательно (для двоичной системы) Для общего случая (q - 1) - если число отрицательно, и 0 - если число положительно. q - основание системы счисления. Код знака записывается перед старшей цифрой числа и отделяется от неё точкой: -1.01 = 1.101 Прямой, обратный и дополнительный коды положительных чисел совпадают между собой. Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения. Пример : +12310 = 0.123пр = 0.123об. -12310 = 9.123пр = 9.876об +3А7С0016 = 0.3А7С00пр = 0.3А7С00об. -3А7С0016 = F.3А7С00пр= F.C583FFоб. -1012 = 1.101пр = 1.010об. Замена цифр их дополнениями для двоичной системы совпадает с операцией инверсии, то есть нули заменяются единицами, единицы - нулями. Знак принимает значение, равное единице. Дополнительный код отрицательного числа образуется из обратного увеличением на 1 его младшего разряда. При этом перенос из знакового разряда игнорируется. Пример: +23610 = 0.236пр.= 0.236об.= 0.236доп. -23610 = 9.236пр.= 9.763об.= 9.764доп. -1012= 1.101пр.= 1.010об= 1.011доп. -3А7С16= F.3А7Спр= F.C583об.= F.C584доп. Правила перевода из прямого кода в обратный и из обратного в прямой, а также из прямого в дополнительный и из дополнительного в прямой совпадают между собой.