Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2024

Просмотров: 278

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Перевод целой части

Перевод дробной части

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

Остатки

Целые части —

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

деление

 

разряды пере­

умножение дробной

 

 

веденной дроби

части

 

 

О,

30:2

0 -

 

Х2

 

 

 

15:2

1-

 

Х 2

 

 

 

7:2

1-

 

Хг

 

 

 

3:2

1.

 

х;

 

 

 

1 : 2

1-

 

2 и т. д.

0

 

 

 

Результат:

А(2) = 1 1 1 1 0 , 1 0 0 1 1

 

Если при переводе дробной

части получается периодическая дробь, как в

рассматриваемом примере, то производят округление, руководствуясь заданной

точностью вычислений. В данном

случае искомая дробь

определена с точ­

ностью до пятого знака после запятой.

 

Пример 2.2. Двоичное число

=11И 10,01 перевести в десятичную систему

счисления.

Основание десятичной системы счисления в двоичной записи имеет вид 1010. Поэтому при переводе целую часть Д^2) будем последовательно делить, а дроб­

ную часть Ау) — последовательно умножать на число 1 0 1 0 .

Перевод целой части

Перевод дробной части

1 1 1 1 1 0 | 1 0 1 0

 

 

0 ,

v 0 1 0 0

1 0 1 0

_ 1 1 0 1 1 0 1 0

 

 

х 1 0 1 0

1 0 1 1

0 0 0 0

0

+

0

1 0 0

~ Ю10

ГЛо)

 

 

+

1 0

0

ЦП!

 

 

 

[10]

v 1 0 0 0

 

 

 

 

 

х 1 0 1 0

 

 

 

.

1

0 0 0

 

 

 

+

1 0 0

0

 

 

 

Под

0 0 0

 

'

 

,

|

 

Результат: А(10) = 6

2 .

2

5

 

Десятичные эквиваленты

разрядов

искомого

числа находим,

пользуясь

табл. 2 .1.

рассмотренным

правилам необходимо

выполнять

При переводах чисел по

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

33


Следует заметить, что кроме изложенных универсальных алгоритмов пере­ вод можно осуществлять непосредственно по формуле (2.2). На основе этой фор­ мулы, например, составляют программы машинного перевода чисел из десятич­ ной системы счисления в двоичную. Формула (2.2) также оказывается удобной при ручном переводе из восьмеричной или шестнадцатеричной системы в деся­ тичную (но не наоборот!). При этом вычисления выполняют по схеме Горнера:

— сначала находится произведение цифры старшего разряда числа на осно­ вание исходной системы счисления, к которому прибавляется следующая цифра переводимого числа;

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

Пример 2.3. Перевести восьмеричное число A(g) = 775 и шестнадцатерич­

ное

= 1FD в десятичную систему счисления.

 

 

I -7 7 5

 

,— 1 FD

 

+

 

 

 

7

Х 16

 

X_8

 

56

 

16

 

+ 1<—

+ 15ч-

 

,63

X3116

 

504

+

186

 

5ч—

 

3i_

 

-^(10) —509

'

496

 

 

13ч-

 

 

Л(Ю) —509

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

При двоично-десятичной записи каждая цифра десятичного чи­ сла заменяется четырехразрядным двоичным числом (тетрадой). Например, десятичное число/4(,0)= 983,65 в двоично-десятичной

записи будет иметь вид

9

8

3

6

5

Л(2—10) = 1°01 1000 0011 0110 0101.

Согласно сделанному выше замечанию относительно формулы (2.2) при пе­ реводе двоично-десятичного числа в двоичную систему счисления каждая деся­ тичная цифра, представленная двоичной тетрадой, множится на основание деся­ тичной системы в соответствующей степени, записанное в двоичной системе счисления. Искомое двоичное число формируется как сумма полученных произ­ ведений. Например,

183 = 1-102 + 8-101+3-100-н-0001.1100J00 + JOOO-IOIO + 001М = 10Ц0Ш.

34


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

Восьмеричная система счисления используется при программи­ ровании задач для записи на бланках порядковых номеров команд, кодов операций и адресов в командах. Восьмеричная запись удоб­ на тем, что перевод чисел из восьмеричной системы счисления в двоичную осуществляется очень просто. Так как основание восьме­ ричной системы 8 = 23, т. е. представляет собой целую степень числа два, то для перевода восьмеричного числа в двоичное достаточно

каждый восьмеричный

разряд представить

тремя двоичными

(триадами). Например, восьмеричному

числу А(8)

= 456,31 соот-

 

4

5

6

3

1

ветствует двоичное число

Л(2)= 1 0 0

101

1 1 0 ,0 1 1

0 0 1 .

Простота перевода восьмеричных чисел в двоичные позволяет осуществлять перевод программы в двоичное изображение с по­ мощью несложных шифраторов внешних устройств при наборе команд на соответствующей клавиатуре.

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

А (2) = 1011110. 1011:

Л(2) =001 011

ПО. 101 100,

<■-----------

------- >

А{&) =

136,54.

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

Шестнадцатеричная система счисления, в которой основание 16= 24, широко используется в новейших отечественных и зарубеж­ ных многопрограммных ЦВМ. Она позволяет делать еще .более компактные записи двоичных кодов, что очень важно, поскольку диапазоны разрядности чисел, команд и специальных двоичных слов, которыми оперируют эти машины, стали значительно шире. Кроме того, в разрабатываемых и выпускаемых в настоящее время ЦВМ третьего поколения в качестве основной единицы информации все шире используется восьмиразрядный двоичный код — байт (от английского слова byte — слог). Переменные разрядности чисел и команд устанавливаются кратными байту. Двоичные коды байтов при записи на бланках удобно представляются двухразрядными шестнадцатеричными числами. Поэтому при подготовке к вводу в

35


I

такие машины программ, различных специальных слов и при пе­ чати выдаваемой информации, не переводимой в десятичную систе­ му, используется шестнадцатеричная система счисления. Примене­ ние ее оказывается не сложнее, чем восьмеричной системы. Отличие состоит лишь в том, что при переводе в шестнадцатеричную систе­ му счисления двоичные числа разбиваются влево и вправо от запя­ той на тетрады, а при обратном переводе каждая шестнадцатерич­ ная цифра заменяется двоичной тетрадой. Например, двоичному числу Л(2) = 1011 ОНО 1100 001 Соответствует шестнадцатеричное

"6 ""с"" Т'

Л(16) = В 6 СЗ и наоборот: Л(16) = А7-^ Л(2) == 1010 0111.

§ 2.2. Формы представления чисел

Для выполнения арифметических действий над числами цифро­ вая машина должна «уметь» оперировать положительными и отри­ цательными числами различных порядков.

В машинах числа представляются фиксированными или пере­ менными в определенных пределах количествами разрядов. Для представления чисел различных порядков применяются две формы изображения: полулогарифмическая с плавающей запятой и есте­ ственная с фиксированным положением запятой.

Полулогарифмическая форма представления с плавающей запя­

той основывается на изображении чисел в виде

 

А — ± р ,

±т,

(2.3)

соответствующем записи

 

 

A = N~p (±m),

(2.4)

где N — основание системы счисления;

 

р — целое число, называемое порядком числа А;

 

т — мантисса числа А, причем обычно \т\ < 1.

потому,

Запись вида (2.3) называется

полулогарифмической

что в логарифмической форме представляется не все число, а толь­ ко его часть N~p.

В записи (2.4) положение запятой в мантиссе т определяется величиной порядка р. С изменением порядка в большую или мень­ шую сторону запятая соответственно перемещается влево или вправо, т. е. «плавает» в изображении числа.

В разрядной сетке машины число, соответствующее изображе­ нию (2.4), записывается в виде пары чисел ± р и ±т . Машины, использующие только такое представление чисел, называются м а-

ши н а м и с п л а в а ю щ е й з а п я т о й .

мантиссы находится

Если в записи (2.3) абсолютная величина

в пределах

 

- ^ < \ т \ < 1 ,

(2.5)

36


то число А называют н о р м а л и з о в а н н ы м , в противном

случае — н е н о р м а л и з о в а н н ы м

. Например, двоичное число

0,1 10100 10100 — нормализованное, а

число 0,001101 10по—-ненор­

мализованное. Во втором случае |/га | <-^-(нарушение нормализа­

ции вправо), где 10 (два) — основание двоичной системы счисле­ ния. В процессе вычислений возможно появление мантиссы | /га |>1 (нарушение нормализации влево). Такой случай может возникнуть, например, при сложении нормализованных чисел одинакового по­ рядка, в результате чего слева от запятой появляется единица.

Нормализованное представление чисел позволяет сохранять в разрядной сетке большее количество значащих цифр и, следова­ тельно, повышает точность вычислений, а также упрощает дей­ ствия над порядками и мантиссами. Однако может возникнуть не­ обходимость в выполнении действий и над ненормализованными числами. Поэтому в системах команд современных машин преду­ сматривается возможность выполнения действий как с автомати­ ческой нормализацией результатов операций, так и без нормали­ зации. Процесс нормализации состоит в сдвиге мантиссы влево или вправо таким образом, чтобы она удовлетворяла неравенству (2.5). Одновременно со сдвигом соответственно уменьшается или увели­ чивается порядок. При сравнительно небольших количествах раз­ рядов, отводимых на мантиссы и порядки, полулогарифмическая форма обеспечивает весьма широкий диапазон представления чи­ сел. Поэтому вычисления с плавающей запятой очень удобны для научных и инженерных задач, при решении которых часто прихо­ дится иметь дело с величинами, изменяющимися в больших преде­ лах. Широкий диапазон представления позволяет в подавляющем большинстве случаев решать задачи не прибегая к масштабирова­ нию используемых в них математических величин.

Пусть для представления значащих разрядов мантиссы /га и по­ рядка р в машине отводится соответственно I и q двоичных разря­

дов. Тогда

диапазон представления нормализованных

двоичных

чисел Л(2)

(взятых по абсолютному значению)

будет удовлетворять

неравенству

 

 

 

 

 

2

- i . 2-<27- 1) < | Л(2)| < (1 - 2~1) • 229" 1,

(2.6)

где 2-1 и 12~1— соответственно

наименьшее и наибольшее абсо­

лютные значения нормализованных мантисс.

высокой

точностью

Практически

всегда />20,

поэтому с

12-*= 1.

 

 

 

 

(2.6)

Для примера предположим, что д=6, тогда согласно

Такой диапазон представления двоичных чисел соответствует пред­ ставлению десятичных чисел в пределах 1 0 ~19< | Л(10)| < 1019.

Интересно отметить, что при том же количестве двоичных раз­ рядов I и q диапазон представления чисел можно существенно рас­

37