Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.04.2024
Просмотров: 278
Скачиваний: 0
Перевод целой части |
Перевод дробной части |
||
Последовательное |
Остатки |
Целые части — |
Последовательное |
деление |
|
разряды пере |
умножение дробной |
|
|
веденной дроби |
части |
|
|
О, |
X® |
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 и 1—2~1— соответственно |
наименьшее и наибольшее абсо |
||||
лютные значения нормализованных мантисс. |
высокой |
точностью |
|||
Практически |
всегда />20, |
поэтому с |
|||
1—2-*= 1. |
|
|
|
|
(2.6) |
Для примера предположим, что д=6, тогда согласно |
Такой диапазон представления двоичных чисел соответствует пред ставлению десятичных чисел в пределах 1 0 ~19< | Л(10)| < 1019.
Интересно отметить, что при том же количестве двоичных раз рядов I и q диапазон представления чисел можно существенно рас
37