![](/user_photo/_userpic.png)
книги из ГПНТБ / Филимонов Г.А. Основы цифровых устройств систем управления учебное пособие
.pdfшинной восьмеричной записи, необходимо дробную часть числа первый раз умножить на 4, а все последующие - на 8, пока не получим нужное число разрядов„ Результат записывается в виде целого числа.
Если правильная десятичная дробь отрицательна, то к старшему разряду полученной машинной восьмеричной записи надо прибавить число 4 . В этом случае получается машинная восьмеричная запись отрицательного числа с учетом знака.
Пример. Представить в машинной восьмеричной записи де сятичную дробь 0, 999 и - 0,935
0
3
7
7
5
Ответ:
999 |
0 |
935 |
|
х |
4 |
|
X 4 |
996 |
3 |
740 |
|
х |
8 |
|
х 8 |
968 |
5 |
920 |
|
х |
8 |
|
х 8 |
744 |
7 |
360 |
|
х |
8 |
см |
х 8 |
8 |
со |
880 |
|
0,999( щ |
= 3775 ( ц / f y ; ответ: -0,935 (IOj = |
= 3572 + 4000 = 7572 (М/
Для представления правильной двоичной дроби в машин ной восьмеричной записи необходимо сту дробь записть в пря мом коде, а затем набор цифр кода разбить на триады слева направо, включая знаковый разряд в первую триаду. После че го каждую триаду перевести в восьмеричную систему счисле ния.
Пример. Представить правильную двоичную дробь О, OIOIIIOOIOIO в машинной восьмеричной записи.
Поскольку прямой код правильной положительной двоич ной дроби совпадает с ее изображением, то разбиваем задан ную дробь на триады, включая и знаковый разряд
OOIOIIIOOIOIOO.
Переводя полученное число в восьмеричную систему, по
8 0
лучим 13450, |
|
|
Ответ: |
0,010 I I I 001 1 0 1 0 ^ |
= 13450/ м /8 / |
Пример, |
Представить правильную двоичную отрицатель |
|
ную дробь - |
О, IOIIOIOIIOIIIOOOOI |
в м/8 записи. |
Записываем заданную дробь в прямом коде: |
||
I , IOIIOIOIOIIIOOOOI• Разбиваем набор цифр прямого кода на |
триады слева направо, включая и знаковый разряд.
Н О . ПО . 101. О Н . 100. 001.
Переводя каждую триаду в восьмеричную систему счисле ния, получим 665341.
Часто бывает необходимо выполнить обратный переход от машинной восьмеричной записи к восьмеричной системе счисле ния через двоичную. В этом случае каждую цифру числа, изоб раженного в малинной восьмеричной записи, заменяют триадой, а затем отбрасывают староий разряд старшей триады, после чего вновь образованные триады заменяют восьмеричными циф рами.
Подученная таким образом правильная восьмеричная дробь будет отрицательной, если в старшем разряде исходного чис ла стоит цифра 4 , 5 , б или 7 .
Пример. Перевести число 151 733 6101 из машинной вось меричной записи в восьмеричную систему счисления
I |
5 |
I |
|
7 |
3 |
|
3 |
6 |
|
I |
0 |
I |
|
001 |
101 |
001 |
I I I |
|
ОН |
ОН |
ПО |
001 |
000 |
ОСЛО |
|||
'----- |
V---’'---- |
V----- |
1--- |
У---- |
«--V----- |
'<-- |
,-----><--- |
у---- |
>1-- |
,--- »-- |
у--- |
|
|
|
3 |
2 |
|
3 |
6 |
|
6 |
|
7 |
4 |
2 |
0 |
2 |
Ответ: |
151 |
733 |
6101/м 7 8/ |
- |
0, |
3236674202. |
|
|
|
Пример: Перевести число 665341 из машинной восьмерич ной записи в восьмеричную систему счисления
6 |
6 |
|
5 |
3 |
4 |
I |
|
НО |
ПО |
ч |
101 |
ОН |
100 |
0010 |
I |
L |
» м |
м , » |
м v ' |
**■■' у— |
я ^ |
||
|
5 |
5 |
2 |
7 |
0 |
2 |
|
6 |
81 |
Ответ: 6 6 5341^,^ = - 0,552702 ^ .
Двоично-десятичная запись чисел
При переводе в цифровой вычислительной машине деся тичных чисел в двоичные промежуточной является двоично десятичная запись чисел. Эта система записи состоит в сле дующем.
Каждая цифра десятичного числа записывается в виде четырехразрядного двоичного числа /тетрады /. Таким образом, двоично-десятичная запись числа отличается от его десятич ной записи тем, что для изображения каждой цифры использу ется не один знак, а тетрада.
Пример. Представить десятичное число 25 в двоично-де сятичной записи.
Изображаем каждую цифру заданного числа тетрадой 0010 0101. Это и есть двоично-десятичная запись заданного числа. Обратный перевод не представляет затруднений.
Во внешних устройствах ЭЦВМ десятичные числа преобра зуются в двоично-десятичные. Последние по специальной про грамме самой машиной переводятся в двоичные.
Формы изображения числа в ЭЦМ
Специализированные ЭЦМ, как правило, оперируют с чис лами, изображаемыми в двоичной системе счисления. Каждый разряд двоичного числа изображается в машине при помощи какого-либо технического устройства, имеющего два устойчи вых противоположных состояния, ЭЦМ содержит лишь конечное число таких устройств, и поэтому она может оперировать с числами определенной "длины", т .е . с числами, имеющими оп ределенное количество разрядов. Выбор числа разрядов опре деляется точностью решения задачи и конструктивными сооб ражениями. Принципиально ЭЦМ может обеспечить любую точ ность вычислений за счет увеличения количества разрядов,
82 |
( |
|
используемых для представления чисел. Б Э1Щ обычно исполь зуют 30-40 двоичных разрядов.
Диапазон чисел, который монет быть представлен в ма шине при данном количестве разрядов, зависит от принятой формы представления чисел.
В ЭЦВМ используются две формы представления чисел:
с "фиксированной" запятой и с "плавающей" запятой. В зави симости от этого различают машины с фиксированной запятой
имашины с плавающей запятой.
Вмашине с фиксированной запятой положение запятой, отделяющей целую часть числа от дробной, фиксируется меж ду определенными разрядами числа и сохраняется неизменным при всех вычислениях. Обычно запятая находится перед край ним слева, т .е . перед старшим разрядом. В этом случае в ма шину могут быть помещены и она может оперировать лишь чис лами по модулю меньшими единицы.
Для изображения знака числа выделяется специальный разряд, стоящий слева от запятой. Бели число положительно, то в знаковом разряде записывают "О", если же число отри цательно, то в знаковом разряде ставят "I" .
Пусть количество двоичных разрядов в машине с фикси
рованной запятой |
равно |
п |
, при этом старший разряд |
являет |
||||
ся знаковым, |
тогда разрядная |
сетка числа |
будет иметь |
вид |
||||
1 |
|
2 -2 |
|
1 |
2ПЧ |
-л |
||
го |
м |
|
|
го |
со |
2 |
||
I |
|
|
2 |
|
3 |
............... |
п-1 |
п |
знак |
|
|
|
|
|
разряды числа |
|
|
числа |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
В этом случае в машине могут быть представлены числа |
||||||||
в диапазоне |
от - |
/1 -2 |
П |
/ |
до - 2 ~ п |
от + 2 п |
до |
|
+ /1 - 2 - л |
/ |
и число нуль. Число А, модуль которого |
|
|||||
О*-|/\|^<0 |
|
, |
в такой |
ячейке будет представлено в |
виде |
|||
нуля. |
|
|
|
|
|
|
|
|
83
Отличные от нуля числа, воспринимаемые |
малиной как |
|||
нуль, носят название машинных нулей. |
|
|
||
Если, например, |
п = 8, то в ячейке могут быть изоб |
|||
ражены числа, начиная |
с О, |
OOOOOOOI |
и кончая |
0,11111111 |
/и ли , в десятичной системе, |
начиная |
с - р - |
и кончая |
_i+ |
f |
_f |
JL + _JL |
+ _L+J_ = JXL - i —2~e |
|
2 |
4 |
fi Г6 |
32 |
64 |
i2A Z56 256 |
|
5 |
результате |
выполнения арифметических операций в ма |
шинах с запятой, фиксированной перед старшим разрядом, мо
гут получаться числа, равные или больше |
единицы. |
Практиче |
|
ски это означает, |
что целая часть числа |
будет записана в |
|
знаковом разряде, |
а единица или нуль, указывающие |
знак |
числа, будут утеряны. Это явление носит название перепол нения разрядной сетки. Для того чтобы исключить перепол нение разрядной сетки, все величины, входящие в решаемую задачу, при программировании умножаются на масштабные ко эффициенты, т .е . на множители, подобранные с таким расче том, чтобы все исходные, промежуточные и конечные величи ны были бы меньше единицы.
В машинах с плавающей запятой все двоичные числа изоб
ражаются |
в |
виде: |
|
|
|
|
х = 2 РА , /А /< 1 , |
|
|
где Р - |
целое число /полож .,отриц. или нуль/, |
называемое |
||
|
порядком числа} |
|
|
|
А - мантисса числа х . |
|
|
||
Величина порядка определяет положение запятой в числе. |
||||
Если число |
А удовлетворяет неравенству /А /> |
-3j- , |
то |
говорят, что число х "нормализованное число". Это неравен ство означает, что у нормализованного числа первый разряд после запятой всегда равен единице. В машинах с плавающей запятой изображаются отдельно порядок Р и отдельно ман тисса А. Следует помнить, что у нормализованных чисел не только мантисса А, но и порядок Р могут быть обоих знаков.
84
Например, число |
- |
в нормализованном виде изображается |
как |
||||||||||||||||
|
|
1 |
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
2"2 |
|
и т .п . |
|
Поэтому |
необходимо |
отвести |
по |
одному разря |
|||||||||||
2 |
|
|
|||||||||||||||||
ду |
для представления знака порядка и знака |
мантиссы. |
|
||||||||||||||||
|
|
Пусть разрядная сетка машины с "плавающей" запятой |
|||||||||||||||||
имеет |
|
такой |
вид |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
5 |
разрядов |
|
|
|
|
|
|
35 |
разрядов |
|
||||
|
I |
|
2 |
3 |
|
4 |
|
5 |
б |
|
7 |
8 |
9 |
10 • • • 41 |
42 |
||||
|
' |
|
|
|
|
V |
|
|
|
; |
' |
|
|
|
V |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
знак Р |
|
|
|
Р |
|
|
|
|
знак |
|
|
|
А |
|
|
|
|
||
|
|
Пятью разрядами |
порядка Р |
можно записать в двоичной |
|||||||||||||||
системе |
счисления |
числа от 0 до 2^ |
- I |
|
= 31, |
поэтому |
Р |
||||||||||||
будет |
|
принимать целые |
значения |
от - |
31 |
до + 31. В нормали |
|||||||||||||
зованном |
виде |
А |
может |
принимать значения |
от |
|
|
|
|||||||||||
|
|
|
|
0,100 . . . |
О |
|
|
|
до О,XI |
. . . |
I |
|
|
|
|||||
|
|
|
'---------------------- V------------------ ' |
|
|
'---------------V--------------- - |
|
|
|
||||||||||
|
|
|
|
35 разрядов |
|
|
|
|
35 |
разрядов |
|
|
|||||||
т .е . |
|
от |
2-1 |
|
до |
2"1 |
+ 2“2 + . . . |
+ 2“35 |
= |
I - |
2-3 5 . |
||||||||
|
|
Наименьшее по модулю нормализованное число, представ |
|||||||||||||||||
ленное в данной машине, будет |
2~315 ~ |
|
= 2“32. |
Числа, |
|||||||||||||||
меньшие чем 2-32 , |
уже не |
|
могут |
быть изображены и принимают |
|||||||||||||||
ся |
равными нулю. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
Наибольшее по модулю нормализованное число |
будет |
||||||||||||||||
2 |
+3^ |
|
/ I —2” 3^/ |
~ |
23^ * |
|
|
|
|
|
|
|
|
|
|
||||
|
|
Из сказанного следует, что |
в данной |
машине |
могут |
быть |
|||||||||||||
представлены |
числа |
в диапазоне |
от 2+31 |
|
/1 -2 -35/ |
до - г " 32 |
|||||||||||||
и от |
+ |
2“ 32 |
до |
+2+31 |
( 1-2“3^) |
и число |
0. |
|
|
|
|
||||||||
|
|
Так как |
|
23^ |
и |
232 |
~ |
10^, |
то |
рабочим диапазоном |
|||||||||
чисел |
|
машины будут |
числа |
|
от - 10^ до - |
10”^ |
и |
от |
+ 10“^ до |
85
+ 10^, иначе |
говоря, числа представляются |
с точностью до |
||
10 |
десятичных |
знаков. Для большинства задач |
практики та |
|
кой |
диапазон |
чисел |
будет достаточным. |
|
|
Диапазон |
чисел |
для работы машин с плавающей запятой |
определяется числом разрядов р , а точность - числом раз рядов мантиссы.
Фактически при одном и том же количестве разрядов А точность вычислений на машине с плавающей запятой больше, чем на машине с фиксированной запятой. Это объясняется тем, что при фиксированной запятой относительная точность чисел уменьшается с уменьшением числа, при плавающей запятой бла годаря нормализации относительная точность сохраняется по стоянной для всех чисел в рабочем диапазоне.
Машина с плаващей запятой позволяет получить больший рабочий диапазон чисел, большую точность вычислений и, кро ме того, упрощает программировсние. Однако система с пла вающей запятой требует добавления устройств для представле ния порядков Р и для операций с порядками. Поэтому плаваю щая запятая используется в больших цифровых машинах, а ма лые машины выполняются с фиксированной запятой.
§ 9 . Кодирование двоичных чисел
Обычно электронные цифровые машины выполняют арифме тические и логические операции не над двоичными числами, а над специально подобранными их кодами. Это объясняется тем, что схемы, выполняющие операции над кодами, получают ся значительно проще, чем схемы, выполняющие операции не посредственно над двоичными числами.
В ЭЦМ применяются следующие коды чисел: прямой, обрат ный, обратный модифицированный, дополнительный и дополни
тельный модифицированный. |
В машине "Урал”, например, |
при |
меняются первые два кода. |
В прямом коде изображаются чис |
|
ла в ячейках памяти и в АУ при выполнении умножения, |
деле |
|
ния и ряда логических операций. Введение обратного и |
допол |
86
нительного кода вызвано стремлением свести операцию пряно го вычитания, которое трудно осуществить в ЭЦМ непосредст венно, к сложению этих специально подобранных кодов.
Заметим, что в ЭЦП различными кодами изображаются только двоичные числа, являющиеся правильными дробями.
Прежде чем перейти к рассмотрению различных кодов,ука жем таблицы основных арифметических операций над однораз рядными двоичными числами
Слежение
н о + о |
о |
|
0 + 1 = |
1 |
|
1 + 0 |
= |
1 |
I + I |
= |
10 |
Прямой код
Вычитание
0 - 0 |
= 0 |
||
м |
1 о и о |
||
1 |
- 1 |
= |
0 |
10 |
- I |
= |
I |
Умножение
о . о |
о Н |
.о ы |
п о |
.W о |
а о |
1 . 1 |
= 1 |
|
Пусть х - |
правильная двоичная дробь / |
положительная |
||||||
или |
отрицательная / . |
В частном случае х = |
О . |
|
|||||
|
Прямым кодом числа х |
называется число, которое |
полу |
||||||
чается на основании |
следующей формулы: |
|
|
||||||
|
|
|
х |
|
при |
х |
>0 |
|
Л 1 5 / |
|
|
|
{ - X |
при X 4 0 . |
|
||||
|
|
|
|
|
|||||
|
Если в общем виде записать правильную положительную |
||||||||
дробь как х = 0 , |
х 1 |
хг . . . |
х п , |
то |
согласно формуле |
/1 1 5 / |
|||
ее прямой код будет |
|
|
|
|
|
|
|
||
|
[ |
4 , р |
|
S |
• • • |
хп]пр=0,Ъ1хе...х п. |
|
||
|
Прямой код |
отрицательной |
дроби |
х = -0 ,х 1хг ... х п |
|||||
на основании второй |
строки той же формулы следует записть |
||||||||
|
|
|
п\пР4-(-0,xixa...xn)4,xi х г . . . хп . |
||||||
|
Например, |
[o,IIOIIIOOl] пр |
|
0 ,Ш 0 Ш 0 0 1 |
или |
||||
[- |
0 ,II0 III0 0 l] пр |
I |
- |
( - |
0,110111001) -1,110111001. |
87
Таким образом, из формулы и примеров следует, что в машинах с запятой, фиксированной после знакового разряда, прямой код правильной положительной двоичной дроби совпа дает с изображением ее в двоичной системе счисления,, Для получения прямого кода правильной отрицательной двоичной дроби легко сформулировать правило.
Чтобы получить прямой код правильной отрицательной двоичной дроби, следует отбросить знак, в разряде целого числа /в знаковом разряде/ записать единицу, а цифровые разряды оставить без изменения.
Нетрудно видеть, что число нуль имеет два отвечающих ему значения прямого кода:
Знак нудя используется |
для указания |
того направления, |
|
с которого вычисления приблизились к нулю. |
|||
О б р а т н ы й |
к о д |
правильной |
двоичной дроби |
определяется по формуле |
|
|
|
|
|
|
|
|
|
|
|
|
/не/ |
|
|
|
|
|
10 - 10Л |
+ х |
|
при х ± 0 , |
|
где |
10 |
- |
число |
два |
в двоичной |
системе |
счисления) |
||
|
п - |
количество |
разрядов |
дробной |
части числа. |
||||
|
Из формулы /1 1 6 / |
также следует, что |
обратный код пра |
||||||
вильной |
положительной двоичной |
дроби |
совпадает |
с изобра |
|||||
жением ее в двоичной системе счисления. |
|
|
|||||||
|
Практическое |
правило получения обратного кода отри |
|||||||
цательного |
числа можно сформулировать |
следующим |
образом. |
||||||
Чтобы отрицательное число представить |
в |
обратном коде, не |
обходимо отбросить знак числа, записать в знаковый разряд
единицу, а каждый двоичный |
разряд дробной части |
заменить |
его отрицанием. |
|
|
Таким образом, если |
о с = -0 ,х 1х 2 ... х п,то |
согласно |
88
правилу [х]о5- = |
l,)x i ocg... х п |
, |
|
где |
ас. |
_ отрицания циф |
||||||
ровых разрядов |
заданной |
двоичной дроби» |
|
|
||||||||
|
Пример. |
[ 0, 110111001] ^ |
= 0,110111001 |
|||||||||
|
|
|
||||||||||
|
|
|
|-0,1101И0О1]о£ |
= 1,001000110. |
||||||||
|
На основании двоичной дроби |
|
x = -0 4x dх г х 3. . . х п |
|||||||||
составим разность |
[a?]oJ- x |
, |
которую для наглядности за |
|||||||||
пишем так: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ { , Х , Я г Х3 . . . Х „ |
|
|
||||||
|
|
|
|
|
0 , x dx z x 3 . . . х п |
|
|
|||||
|
|
|
|
|
i j |
1 |
1 . . . |
i |
’ |
|
|
|
где |
x L + х^ = 1 |
согласно |
таблице сложения двух однораз |
|||||||||
рядных двоичных чисел. |
|
|
|
|
|
|
|
|||||
|
Итак, |
[c c j^ - x |
= |
I > H ...I j |
дробь I , I I . . . I = |
|||||||
= 10 |
- 0,00 . . . . |
|
I |
= 10 |
- |
10 |
. |
Отсюда получаем |
||||
|
|
[ 4 ^ 1 0 - ю - " - ^ , |
|
|
|
|
||||||
что соответствует |
второй |
строке формулы /1 1 6 /. |
||||||||||
|
Число |
нуль в |
обратном коде имеет два изображения: |
|||||||||
|
|
|
|
= [0 ,0 0 ... |
О ] |
= |
0 ,0 0 ... |
0. |
||||
|
|
|
|
" |
[- 0 ,0 0 ... |
О] |
= |
1 ,1 1 ... |
I . |
|||
|
К о д и ф и ц и р о в а н н ы й |
о б р а т н ы й |
||||||||||
к о д |
правильной двоичной дроби |
определяется по формуле |
||||||||||
|
|
Мо5 |
|
X |
|
|
|
при х » 0 |
Л 1 7 / |
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
1 0 0 - ю ' |
+ Х |
при Х ^ О |
|
|||||||
|
|
|
|
|
||||||||
|
Если х |
= 0, |
х { х г . . . х п |
, |
то |
его |
модифицированный |
|||||
обратный код записывают в виде [о^- |
=00 ^ х 1х г . . . х п *, |
|||||||||||
если |
х = - 0 , х ± х г . . . |
х п у то |
[ х ] ^ |
=11уХ1 х & ...~яп . |
89