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

книги из ГПНТБ / Филимонов Г.А. Основы цифровых устройств систем управления учебное пособие

.pdf
Скачиваний:
10
Добавлен:
30.10.2023
Размер:
13.42 Mб
Скачать

шинной восьмеричной записи, необходимо дробную часть числа первый раз умножить на 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

Соседние файлы в папке книги из ГПНТБ