Основы информатики_Савельев А.Я_Учебник_2001
.pdf3 5 Формы представления числовой информации
да [/(^ф ^ 1,10110111110 , что соответствует величине масштабного коэф-
фи1Еиента К ^ - 2^ . Число Л^ должно войти в разрядную сетку автомата с
сохранением соответствия разрядов, т. е. К^ =/Г^ . Следовательно,
Aj =+0,0000110001101-2^ или [/(2]ф =0,00001100011 (рис. 3.2, б, в).
Из примера видно, что представление чисел в форме с фиксированной запятой можег привести к погрешности представления. Так, для числа Aj абсо]гютая погрешносгь представления оценивается величиной части чис
ла, |
не |
уместившейся |
в |
разрядную |
сетку, |
т. е. |
величиной |
0,0000000000001 • 2' . В некоторых случаях очень малые числа представляЮ1СЯ в маните изображением, называемым машинным нулем. Следова тельно, ошибка представления зависи^г от правильности выбора масштаб ных коэффнцненюв. Вычисление последних должно проводиться таким образом, чюбы исключить возможность появления в процессе функциони рования автомата чисел, машинные изображения которых не удовлетворя ют ус;ювию (3.19). Если в результате операции появится число, по абсо лютному значению большее единицы, то возникает переполнение разря/Епон сетки автомата, что нарушает нормальное функционирование цифрово! о авюмата.
Иредсчаплеиие чисел в форме с плавающей запятой. В нормшгьной форме
|
Л - " ' Ж% |
(3.20) |
rvte //;, |
машисса 4iicjra/(; р^ —порядок |
числа/(. |
Как видно ич ранее изложенного, такое представление чисел не одрилпачпо; для определенности обычно вводят некоторые ограничения. Наиболее расиростраиепо и удобно для представления в ЭВМ ограниче ние вида
9 " ' < Ы < 1 , |
(3.21) |
где (/ - с)Снование системы счисления. |
|
Нормализованная форма представления |
чисел — форма представления |
чисел, для которой справедливо условие (3.2 [).
Поскольку в Э10М случае абсолютное значение мантиссы лежит в пре делах о i q ^ до 1-с/ '\'"Де « —количество разрядов для изображения ман тиссы без знака, положение разрядов числа в его автоматном изображении пе ггостояшю. Поэтому такую форму представления чисел называют также
81
J tlpeOi тавяеные 4UL-jit>'ii>u нпфорлш1)ии в unipupMuijuoHiiMX системам
формой представления с плавающей запятой, формат машинного изобра жения числа с плавающей запятой должен содержать знаковые части и поля для мантиссы и порядка (рис. 3.3, а). Выделяются специальные разряды для изображения знака числа (мантиссы) и знака порядка или характеристики (рис. 3.3, а, б). Кодирование знаков остается таким же, как было с фиксиро ванной запятой.
а |
1^ |
я |
' л |
"-я—-——щ~^ |
- |
Т |
"оле мантиссы |
Т |
I'o/fe порявка |
онам мантиссы |
|
JHQK порядка |
||
|
|
Мантисса |
|
PoppSoif |
|
I М I I I I I I I I I I I I I |
|||
|
( |
Характеристика |
Мантисса |
|
Знак Числа |
|
|
||
|
|
{"^ |
|
CftJ |
^|о|/1но|ото1М/|.то|Ио1.т
Рис. 3.3. Представление чисел в форме с плавающей ^«тяюй
F'accMOTpHM пример записи чисел в форме с плавающей запятой. Пусть в разрядную сетку цифровою автомата (рис. 3.3) необходимо занисагь дво ичные числа Д =-10110,11112 и ^2 =+0,000110010111J. Прежде всею эти числа необходимо записать в нормальной форме (рис, 3.3, в, г). Порядок чисел выбирают таким образом, чтобы для них выполия;юсь условие (3.21), т.е. Д =-0,101101111-2' и Д =+0,1100101 I I - 2 ' ' , он должен быть запи сан в двоичной системе счисления. Так как система счисления для заданно го автомата остается гюстоянной, то нет необходимости указывать ее осно вание, достаточно лишь представить показатель степени.
Поскольку для изображения порядка выделено пять цифровых разря дов и один разряд для знака, их машинные изображения и машинные изо бражения их мантисс соответственно
[ p ^ J = 000101; [/!^J = 100011;
[m^J = 1,101101111; [m^J = 0,110010111.
82
3.6.Првдсгиавяение отрицательных чисел
3.6.Представление отрицательных чисел
Один из способов выполнения операции вычитания с помощью сумма тора — замена знака вычитаемого на противоположный н прибавление его к уменьшаемому:
А-В = А + (-В). |
(3.22) |
Этим операцию арифметического вычитания заменяют операцией ал гебраического CJюжeния, которая и становится основной операцией сумма тора. Возникает вопрос: как представлять отрицательные числа в цифровом автомате?
Дня машинного представления отрицательных чисел используют пря мой, догюлнительный и обратный коды. Рассмотрим применение этих ко дов для чисел, представленных в форме с фиксированной запятой. Для про стоты изложения в дальнейшем будут рассматриваться числа, которые по модулю меньше единицы. Это существенно упрощает вычисление мас штабных коэффициентов.
Прямой код числи /1 =-О, 0,02 ...а„ — машинное изображение этого числа в виде [А\^^ = 1, o,Oj ...о„ . Из определения следует, что в прямом ко де все цифровые разряды отрицательного числа остаются неизменными, а в знаковой час1И загшсывается единица. Например, если Л = -0,101 ПО, то i-^liip = 1.101110. Положительное число в прямом коде не меняет своего изображения. Например, если /i = 0,110101, то [^]„р =0,110101.
В прямом коде в разрядную сетку цифрового автомата можно запи сать следующее максимальное по абсолютному значению число
4||,„,„ =0.1 1...1 = 1-2"" , где и — количество разрядов разрядной сетки цифровою автомага.
Диапазон изменения машинных изображений для прямого кода лежит
в пределах - (1 - 2 ") < [^J„i, < ( 1 - 2 " ' ) .
Ранее прямой код был использован для записи чисел в разрядной сетке цифрового автомага.
Правила преобразования чисел в прямой код можно сформулиро-
вагь так: |
|
|
{ |
А, если Л > О, |
|
и к е с л и Л . О . |
^'-''^ |
83
J Представление числовой ииформщии в информационных системах
Дополнительный код числа Л =-0,а^а^...а„ |
— такое машинное изо |
бражение этого числа [А]^ = I, а^а-^ •••Э„, для которого а, = О при и, = 1, и а, = I при й, " О, за исключением последнего значащего разряда, для кото рого Oj =1 при « 4 = 1 . Например, число Л = -0,101110 запишется в до полнительном коде так; [А]^ = 1,010010 .
Дополнительный код является математическим дополнением основа нию системы счисления:
ИКМ,=<?, |
(3.24) |
где 1^1 — абсолютное значение числам.
Так как положительные числа не меняют своего ичображения в допол нительном коде, то правила преобразования в дополнительный код можно чанисать следующим образом:
[ А, если -^ > О, |(/-|Л|, если /1 < 0.
Максимальное дополнительное число, представляемое при згом,
равно (1 - 2 " ) .
Наибольшее отрицательное число, которое можно записать в /{огголиительном коде, оггределим следующим образом. Предположим, чго наи
большее |
отрицательное |
число |
/ 1 ' = - 0 , 1 1 . . . 1 1 . |
Тогда |
изображение |
этого |
числа в дополнительном |
коде |
[ / ! ' ] , = 1,00...01. |
Если к |
чис;гу / 1 ' добавить |
||
единицу |
в самый младший |
разряд, то в результате подгучим |
чис;го |
-1,00...О. Преобразовав это число по формальным правилам, получим [А], =|,00 ... 0 .
Следовательно, диапазон изменения машинных изображений чисел для формы представления с запятой, фиксированной перед старшим разрядом, в дополнительном коде - I < |,4| < (1 - 2 ' " ) .
Машинные изображения чисел — всегда целые числа. При этом наи большее положительное число состоит из целой части, все разряды которой равны единице, и знакового разряда, равного нулю (наггрнмер, в случае 16 двоичных разрядов (два байта) максимальное положительное число имеег вид 01 11 11111111 I I 1 1 , т. е. равно 2 " - I ); наибольшее отрицательное чис ло состоит из целой части, все разряды которой равны Hyjno, и знакового
84
3 б Представление отрицательных чисел
разряда, равного единице, т. е. имеет вид 1000000000000000. В этом случае говорят о форме представления чисел с фиксированной точкой. Таким об разом, соотношение (3.24) для представления целых чисел в дополнитель ном коде принимает вид
И + ML =?'*', |
(3.26) |
где к ••-- количество разрядов в целой части машинного изображения числа ( ^ - О, ^ ).
Формула (3.24) — частный случай формулы (3.26) при к = д . Обратный код числа Л = -О, ЙГ,ЙГ-, ...ЙГ„ — такое машинное изображение
эгою числа [^Яо5 "^ '' ^1^2 •••"^1' ^^ которого й, - О , если ЙГ, = I, и а,~\, если ( 7 , - 0 . Из определения следует, что обратный код двоичного числа является инверсным ^гзображением самого числа, в котором все разряды исходпого числа 1грииима!0т инверсное (обратное) значение, т.е. все нули
заменяются ira едиЕШцы, |
а все единицы — на нули. |
Например, |
если |
|
Л^-0,И)11И). то |Л]„й -1,010001. Для |
обратного кода |
чисел, представ- |
||
JICFUHJIX В форме запягой, |
фиксированной |
перед старшим |
разрядом, |
спра |
ведливо соогношепие |
|
|
|
|
|
\АМА\ ^^q-q-\ |
|
(3.27) |
VRQ \А\ -- абсолкпная ве]П1чина А; п — количество разрядов после запятой в изображсЕШп числа.
11равила преобразования чисел в обратный код можно сформулировать
слсл>10|Г1пм образом; |
|
|
|
|
f |
|
А, если -^ > О, |
|
|
M L = |
„ |
^ |
^ „ |
(3.28) |
\q-q |
+ А, если л < 0. |
|
||
Сравшш (3.24) и (3.27), видим, что |
|
|
||
К |
=[-^]об+</"'• |
|
(3.29) |
Соотношение (3.29) используют для получения дополнительного кода отрица1ельных чисел следующим образом: сначала инвертируется цифро вая час1Ь исхо/тиою числа, в результате получается его обратный код; затем добавляется е/типица в младший разряд цифровой части числа и тем самым получаегся лorюJи^иteльиыЙ код этого изображения.
Пример 3.15. 1!;1Й!И пбрагмый и дополнительный коды числа А = -0,11 lOOOj -
i Представление числовой информации в информационных системах
Р е ш е н и е . Используя определение обратного кода, получим {А\^ = 1.000111 .
Для нахождения дополнительного кода числа добавим единицу в младший разряд ею изображения:
1.000111
М], =1.001000
Ответ: \,Ц^ = 1.000111 ; [..(], =1,001000 .
В обратном коде можно изображать максимальное положительное число [/1]„5,„,, =0,11...I = I - 2 " и наибольшее отрицательное число
[-^lo6min = ^0,11...1 ="(1 - 2 " " ) , записываемое в виде 1,00...0.
При проектировании цифровых автоматов необходимо учитыва|ь не однозначное изображение нуля в обратном коде; +0 изображаегся 0,00...О, -О изображается 1,11 ...I.
Использование различных способов изображения 01рица1ельных чисел в цифровом автомате обусловливает целый ряд особенностей выполнения операции алгебраического сложения двоичных чисел.
3.7. Погрешности представления числовой информации
Представление числовой информации в цифровом автомате, как пра вило, влечег за собой появление погрешностей (ошибок), величина кото рых зависит от формы представления чисел и от длины разрядной сетки автомата.
Абсолютная погрешность представления — разность между нстннным значением входной величины А а ее значением, полученным из ма шинного изображения /1„ , т. е. А[А] = А- А^.
Относительная погрешность представления — величина
5[А] = &[АУА„. |
(3.30) |
Входные величины независимо от количества значащих цифр могут содержать грубые ошибки, возникающие из-за опечаток, ошибочных отсче тов показаний каких-либо приборов, некорректной постановки задачи или отсутствия более полной и точной информации. Например, часто прини мают л = 3,14 . Однако эта величина может быть получена с более высокой точностью. Если принять, что точное значение 7t = 3,14139265, lo абсо лютная погрешность равна Д[л] = 0,00159265 .
86
3 7 Погрешности представления числовой информации
Часто некоторая величина в одной системе счисления имеет конечное значение, а в другой системе счисления становится бесконечной величиной, например, дробь 1/10 имеет конечное десятичное представление, но, буду чи переведена в двоичную систему счисления, становится бесконечной дробью 0,00011000110011...
Следовательно, при переводе чисел из одной системы счисления в дру гую неизбежно возникают погрешности, оценить которые нетрудно, если известны HCTHHHbie значения входных чисел.
В соогвегствии с (3.19) числа изображаются в машине в виде Л^ = [А]К^^, I де масштабный коэффициент К^ выбирают так, чтобы абсолютное значение машинного изображения числа А в системе счисления с основанием q = 2 бы
ло всегда меньше 1: Л,^ =К^{a^^q^^ + a_2q'^ + ... + a_„q~" + . . . ] .
Так как длина разрядной сетки автомата равна п двоичных разрядов после занятой, абсолютная погрешность перевода десятичной информации
в систему с основанием q будет |
|
|
Л1^1 = о,„„7"""+ ... + а_„„„?^""1+...= X",?'- |
(3-31) |
|
I x j m (/ ^ 2 . 1о при ([, - 1 максимальное значение этой погрешности |
||
Ai-4U = Xl-2'=2-"X2'=2-". |
(3.32) |
|
: . - ( » И| |
1.-I |
|
Из (3.32) следует, что максимальная погрешность перевода десятичной информации в двоичную не будет превышать единицы младшего разряда разряд|юй сежи автомата. Минимальная погрешность перевода равна нулю.
Усредненная абсолютная погрешность перевода чисел в двоичную сис
тему счис;гения Д[/<] = (0 + 2'')/2 = 0,5-2 " . |
|
^1^|я ttpe/iciaBjtenns 4Hcejt в форме с фиксированной |
запятой абсолют |
ное значение машинного изображения числа |
|
2-"<|[.4]ф|<1-2-». |
(3.33) |
Следовазель1Ю, относительные погрешности представления для мини мального значения числа 5[/1]ф|^,„ ='^[-4]Д-4]фтах =0,5-2""/(1 - 2~") .
Для ЭВМ, как правило, п = 16...64, поэтому 1 » 2 ' " , откуда 5[.4],| , =0,5-2 ".
87
3- Представление числовой информации в информационных системах |
|
Аналогично, для максимального значения: |
|
8[-4]ф,„„ =Д[-4]ф,„„/М]ф,„,„ =0,5-2-"/2^" . |
(3.34) |
Из (3.34) видно, что погрешности представления малых чисел в форме с фиксированной запятой могут быть очень значительными.
Для представления чисел в форме с плавающей запятой абсолютное
значение мантиссы |
|
2 " ' < | т ^ ] „ | < | ~ 2 ". |
(3.35) |
Погрешность (3.32) — погрешность мантиссы. Для нахождения по грешности представления числа в форме с плавающей запятой величину этой погрешности надо умножить на величину порядка числа р^ :
5[-4L,n„ |
= 0 . 5 - 2 - " р ^ / 2 - 1 |
р ^ = 2 - " ; |
SM]„,„i, |
= 0 , 5 . 2 - > , / ( 1 ~ |
2 - " ) р „ |
где м — количество разрядов для представления мантиссы числа.
|
Из (3.36) следует, что относительная точность представления чисел в |
|
форме с плавающей запятой почти не зависит от величины числа. |
||
|
Задание для самоконтроля |
|
1. |
Перевести десятичное число А = 121 в двоичную систему счисления, |
|
2. Перевесги двоичное число А = 10001010! 11,01 в десятичную систему счисления. |
||
3. |
Перевести десятичное число А = 135,656 в двоичную систему счисления с точностью |
|
до пяти знаков после запятой, |
|
|
4. |
Сколько потребуется двоичных разрядов для изо^ажения деся гичког о числа |
|
5. |
Перевести двоичное число Л^ =101! 1011 в десятичную систему счислогия меюдом |
|
деления на основание, |
|
|
6. |
Перевести восьмеричное число А^ =345,76'i в двоичную систему счисле!н)Я- |
|
7. Записать десятичное число Л = 79,346 |
в двоично-десятичной форме. |
|
8. |
Перевести десятичную дробь Л = 63%, |
в двоичную систему счисления, |
9.Перевести восьмеричную дробь Ag = бЗ)^^ в двоичную систему счисления.
10.Перевести восьмеричное число Ag = 326 в троичную систему счисления.
11.Перевести восьмеричное число А^ =15,647 в двоичную систему счисления.
12.Г!еревести троичное число Л, =1211 в пятеричную систему счисления.
88
Задание для самоконтроля
13. Для какой системы счисления с основанием qi=x |
справедливо равенство |
121 = 44!^? |
|
14. Записать машинное изображение в форме с плавающей запятой для десятичного чис ла А =•- -3,375 , если для мантиссы имеется шесть двоичных разрядов со знаком и для поряд ков — 1ри двоичных разряда (со знаком).
15. Определить масштабные коэффициенты для чисел А^ = -10110,111010001 и
fi, ^0,00! П000И0001 при условии, что машинное изображение числа содержит десять двоичных разрядов со знаком.
16.Перевести двоичное число Л; =0,0П000100 н систему (1, Т )_
17.Перевести число / l , j = 111 П,! из сисгемы ( I , Т ) в двоичную систему счисления.
4.АЛГОРИТМЫ ВЫПОЛНЕНИЯ ОПЕРАЦИЙ СЛОЖЕНИЯ
ИВЫЧИТАНИЯ ЧИСЕЛ НА ДВОИЧНЫХ СУММАТОРАХ
4.1. Формальные правила двоичной арифмегикп
Популярность двоичной системы счисления во многом определяется простотой выполнения арифметических действий:
сложение |
|
вычитание |
у^1Н0жепие |
|
0 + 0 = |
О |
0 - 0 = |
О |
0 X 0 = 0 |
0 + 1 = |
i |
I - О = |
I |
0 X I = 0 |
1 + О = |
1 |
I - I = |
О |
1 X 0 = 0 |
I + I = ( 1 ) 0 |
О - I =(1) |
I |
1 X 1 = 1 |
|
перенос |
|
заем |
|
|
в старший разряд |
в старшем разряде |
|
В основу арифметико-логического устройства любой ЭВМ можег быть положен либо сумматор, либо вычитатель. И в том и в друюм cjry4ae MOI yi быть разработаны алгоритмы выполнения арифметических операций. В выполнении арифметических действий всегда участвуют два числа или бо лее. В результате арифметической операции появляется новое чис;го
C = AVB, |
(4.1) |
где V — знак арифметического действия (сложение, вычитание, умноже ние, деление).
Операнд — число, участвующее в арифметической операции, вьнюлняемой цифровым автоматом.
Так как цифровой автомат оперирует только автоматными изображе ниями чисел, то последние выступают в качестве операндов. Следователь но, для машинных операций более правильно выражение (4.1) написать в виде
[С] = [АЩВ], |
(4.2) |
где в квадратных скобках [ ] — обозначения автоматных изображений опе рандов.
90