Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.56 Mб
Скачать

3.5. Двоичная дополнительная арифметика

3.5.1. Работа с отрицательными числами

Внимательный читатель, наверное, обратил внимание на то, что мы пока ни слова не сказали об отрицательных числах. Одним байтом выражаются целые числа от 0 до 255, одним словом (двумя байтами) выражаются числа от 0 до 65535 (64 Кбайт), а двойным словом (четырьмя байтами) — числа от 0 до 4294967295 (4 Гбайт). А как же процессор работает с отрицательными числами?

На этот случай у него есть специальная арифметика, которую называют двоичной дополнительной арифметикой. Она несколько отличается от обычной двоичной арифметики.

В двоичной дополнительной арифметике байт выражает числа от -128 до +127, включая 0, то есть тоже 256 различных чисел. Признаком отрицательного числа является включенный старший бит.

Если число 16-разрядное, то оно состоит из двух байтов, и в нем тоже один бит отдан на знак это самый старший бит старшего байта. Оставшиеся 15 битов позволяют выразить числа от -32768 до +32767, то есть, те же 64 Кбайт разных чисел, что и в обычной двоичной арифметике.

Осталось только выяснить, как процессор «угадывает», когда он имеет дело с числом, записанным в обычной двоичной арифме­тике, а когда — с числом, имеющим знак.

Давайте вспомним, что скрывается за байтами. Байтами могут выражаться адреса ячеек памяти, коды команд процессора, буквы и символы, цвета точек рисунков, коды звуков и многое другое. Никаким кодам и адресам отрицательные значения не нужны. В наборе команд процессора имеются сотни инструк­ций, вполне обходящиеся без отрицательных чисел. И лишь двум инструкциям знак числа важен — это сложению и вычитанию.

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

3.5.2. Правила двоичной арифметики

О + О = О Единица, возникающая в

старшем разряде, передается

1+0=1 в соседнюю битовую ячейку

Пример

99-14 = 85

О11ОО011 (99) 1111 О01О [-14]

01О1 0101 [85]I

3.5.3. Математический сопроцессор

Представление действительных чисел

Мы рассмотрели, как процессор работает с положительными и отрицательными числами, но до сих пор все эти числа были целыми. А компьютеру приходится иметь дело не только с целыми, но и с действительными числами, в том числе и с бесконечными. К таким числам относятся, например, число ТС и "/2. Как же процессор работает с такими «сложными» числами? Как всегда, процессор упрощает все, что можно упростить.

  1. Сначала действительные числа нормализуются. Смысл этой операции в том, чтобы десятичная запятая у всех чисел стояла в одном и том же месте.

  2. После этого число представляется в виде двух чисел. Первая часть называется мантиссой, а вторая — характеристикой.

  3. Характеристика — это целое число со знаком. Перевести его в двоичную форму нетрудно, и мы знаем, как это делается.

  4. Сложнее обстоит дело с мантиссой, ведь это десятичная дробь. Но и на этот случай есть прием. Он выполняется удивительно просто серией последовательных умножений числа на 2 и переносом его целой части в двоичное представление.

На запись мантиссы и характеристики действительного числа вместе со знаками отводится 80 битов. В обычном процессоре нет 80-разрядных регистров для работы с такими числами. Можно, конечно, «раскидать» действительное число по пяти 16-разрядным регистрам, но в этом случае обработка числа происходит медленно, а программировать такие вычисления невероятно трудно.

Для ускорения работы ее поручают дополнительному процессо­ру, у которого есть 80-разрядные регистры. Этот дополнительный процессор называется математическим сопроцессором. Матема­тические сопроцессоры выпускались отдельной микросхемой для процессоров 8086, 80286 и 80386. Их номера были 8087, 80287 и 80387. У процессоров 486 и Pentium тоже есть математический сопроцессор, но он встроен внутрь основного процессора, так что его не надо покупать и устанавливать отдельно.

Мантисса Характеристика

Число Мантисса Характеристика

12345,67 0,1234567 00000101 Единица в

0,00235 0,235 1111 11 Ю- старшем бите

указывает, что

3,1415926 0,31415926 ОО000001 характеристика

-О,999 -0,999 ОООООООО отрицательная

0 0,31415926-2 ==0.62831852 (забираем О]

О.62831852 -2 = 1.256637О4 [забираем 1]

О.25663704-2 =О.513274О8 [забираемО)

О.513274О8 -2-1.02654816 (забираем 1)

О.О2654816-2= О.О53О9632 (забираем О]

О.О53О9632-2 = 0.10619264 (забираемО)

О.10619264-2 =0.21238528 (забираемО)

О.21238528 • 2 = 0.42477О56 (забираем О)

0.42477О56 - 2 « О.84954112 (забираем О]

0.84954112-2-1.69908224 (забираем 1 ]

0.699О8224-2 - 1.39816448 (забираем 1]

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

Знак мантиссы Мантисса Знак характеристики Характеристика

ОО10 1000 ОО11 ОООО 0000 ОООО 0001