Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы информатики_Савельев А.Я_Учебник_2001

.pdf
Скачиваний:
387
Добавлен:
16.01.2016
Размер:
4.68 Mб
Скачать

3 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