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

книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие

.pdf
Скачиваний:
98
Добавлен:
27.10.2023
Размер:
29.24 Mб
Скачать

 

 

 

 

 

 

Т а б

л

и ц а

2-1

Десятичное изображение

Двоичное изображение

Восьмеричное изображение

Шестнадца­ тиричное изображение

Десятичное изображение

Двоичное изображение

Восьмеричное

изображение

Шестнадца­ тиричное

изображение

0

0

0

0

15

п и

17

 

F

 

1

1

1

1

16

10 000

20

 

10

 

2

10

2

2

17

10 001

21

 

11

 

3

11

3

3

18

10010

22

 

12

 

4

100

4

4

1

0,1

0,4

0,8

2

 

 

 

 

 

 

 

 

 

5

101

5

5

1

0,01

0,2

0,4

4

 

 

 

 

 

 

 

 

 

6

п о

6

6

1

0,001

0,1

0,2

8

 

 

 

 

 

 

 

 

 

7

111

7

7

7

0,111

0,7

0,

Е

8

 

 

 

 

 

 

 

 

 

8

1000

10

8

3

0,011

0,3

0,6

8

 

 

 

 

 

 

 

 

 

9

1001

11

9

1

0,0001

0,04

0,1

 

16

 

 

 

 

 

 

 

 

 

 

10

1010

12

А

7

0,0111

0,34

0,7

 

16

 

 

 

 

 

 

 

 

 

 

11

1011

13

В

1

0,0000!

0,02

0,08

32

 

 

 

 

 

 

 

 

 

12

1100

14

Ü

1

0,000001

0,01

0,04

64

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

13

1101

15

D

Зт

11,001

3,1

 

3,2

 

14

1110

16

F.

4 ——

100,1

4,4

4,8

 

 

 

 

 

2

 

 

 

 

 

4— 333

.49

В восьмеричной системе употребляются восемь цифр: О, 1, 2, 3, 4, 5, 6, 7. Любое число в восьмеричной системе представляется последовательностью цифр

 

 

Х = ß<? ß(7—1‘ ‘ ' ßl ßo ß—1ß—2

>

0 до 7. Этой

в которой ßi могут принимать значения от

записи

соответствует

 

разложение числа х

по

степеням

числа

восемь

 

 

с приведенными

ниже

коэффициен­

тами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* =

 

ß<7 • 87 +

 

ß(7_ 1• 87-1 4

 

1- ß 1-8I +

( -

 

)

 

+

ßo

8

° +

ß

_ , •

 

число

8

- ? +

• •

3

 

 

 

 

 

8 “ 1 4 ß _ 2

 

 

 

2

 

Например,

 

восьмеричное

 

 

 

 

 

 

 

 

(703,04)8 = 7.824-0-8’+ 3 -8 °+ 0 -8 '1+4-8_2 = (451,0625)10.

В шестнадцатиричной системе для изображения чи­ сел употребляется 16 цифр от 0 до 15. При этом, чтобы одну цифру не изображать двумя знаками, приходится вводить специальные обозначения для цифр, больших девяти. Обозначим первые десять цифр этой системы цифрами от 0 до 9, а старшие пять цифр— латинскими буквами: десять—А, одиннадцать — В, двенадцать— С, тринадцать — D, четырнадцать — Е, пятнадцать — F.

Записи произвольного числа в шестнадцатиричной системе в виде последовательности цифр

 

 

^ = V, Ѵ#_1 **- V! То Т-1

-

 

где уі может принимать любые из 16 значений

от 0 до

F (пятнадцать), соответствует разложение числа х по

степеням

числа

16 с указанными ниже

коэффициента­

ми:

 

 

 

 

 

х

=

У г

+ т , _ 1- 16<- 1 4--------! - ѵ

- 161 +

 

 

+

Yo •16° + 7-Г 16“ ' + Y_2 • 16~2+ • • •

(2-4)

Например, шестнадцатиричное число

 

 

(В2Е,4)и = В -162+ 2 -161 -f Е - 16° + 4- 16_1= (2862,25)t0.

Основание любой системы счисления, записанное в этой же системе, имеет вид 10 (число два в двоичной системе есть 10, число восемь в восьмеричной системе есть 10 и т. д.). Общие методы перевода чисел из одной системы в другую будут изложены в следующем параг­ рафе. Здесь мы ограничимся только рассмотрением пра­ вил преобразования восьмеричных и шестнадцатиричных

50

чисел в двоичные и наоборот. Эти правила исключитель­ но просты, поскольку основания восьмеричной и шест­ надцатиричной систем есть целые степени числа два: 8= 23, 16= 24.

Для перевода восьмеричного числа в двоичную фор­ му достаточно заменить каждую цифру восьмеричного числа соответствующим трехразрядным двоичным чис­ лом. Таким же образом для перехода от шестнадцати­ ричной системы к двоичной каждая цифра шестнадца­

тиричного числа заменяется

соответствующим четырех­

разрядным

двоичным

 

числом. При этом

отбрасывают

ненужные

нули. Например,

восьмеричное

число 306,4

в двоичной форме записи имеет вид:

 

 

3

0

 

5

, 4

=(11000101,1),,

000

ТоТ, 100

 

а шестнадцатиричное

число

7В 2, Е в двоичной системе

запишется следующим образом:

 

7

В

2

,

 

Е

=(11110110010,111),.

0П1

ГоТ 1 0ÖTÖ,

Гііо

 

Для перехода от двоичной к восьмеричной (или ше­ стнадцатиричной) системе поступают следующим обра­ зом: двигаясь от запятой влево и вправо, разбивают дво­ ичное число на группы по три (четыре) разряда, допол­ няя при необходимости нулями крайние левую и правую группы. Затем каждую группу из трех (четырех) разря­

дов заменяют соответствующей

восьмеричной

(шестнад­

цатиричной) цифрой.

 

. . .

 

і

Приведем примеры:

 

 

а) Перевод двоичного числа

1101111001, 1101 в вось­

меричное:

 

 

 

 

 

 

 

001

101

ІИ

001,

ПО

100 =(1571,64),;

Т

~5~

~7~

Т ,

6

Т *

*

100111 в

б) Перевод

двоичного

числа 11111111011,

шестнадцатиричное:

 

 

 

 

 

0111

11111

1011,

1001

1100 =

(7FB,9C)J6.

7

F

 

В

'1 Г

 

 

Двоичные числа, наборы цифр которых разбиты на группы по три (четыре) разряда, а крайние группы при необходимости дополнены нулями, можно считать вось­

4!

51

меричными

(шестнадцатиричными)

числами,

й которых

цифра

каждого разряда записана

в двоичной системе

в виде

трех

(четырех)разрядного

двоичного

числа. Та­

кие формы записи чисел носят название двоично-восьме­ ричной и двоично-шестнадцатиричной системы. Они на­ зываются также двоично-кодированными системами.

В вычислительных системах также применяются спе­ циальные формы кодирования десятичных чисел. Этот вопрос будет рассмотрен ниже.

В настоящее время для большинства вычислительных машин основной системой счисления является двоичная. Двоичная система и двоичный алфавит используются во многих машинах для представления и хранения чисел и команд и при выполнении арифметических и логических операций.

Восьмеричная и шестнадцатиричная системы ис­ пользуются при составлении программ для более корот­ кой и удобной записи двоичных кодов — команд, так как эти системы не требуют специальных операций для пе­ ревода в двоичную систему.

Числовые данные, необходимые для решения задачи, вводятся в машину обычно в десятичной системе в ви­ де специальных кодов. Перевод десятичных чисел в дво­ ичные выполняется машиной.

Результаты расчета выводятся из машины в десятич­ ной системе. Перевод данных из двоичной системы в де­ сятичную производится машиной.

При выводе из запоминающего устройства команд они печатаются в шестнадцатиричной (восьмеричной) системе. Числа также могут выводиться в шестнадцати­ ричной (восьмеричной) системе.

2-2. Д В О И Ч Н А Я А Р И Ф М Е Т И К А

Правила выполнения арифметических действий над двоичными числами задаются таблицами двоичных сло­ жения, вычитания и умножения:

Таблица двоичного

Таблица двоичного

Таблица

сложения

вычитания

двоичного

0 + 0 = 0

 

0—0 = 0

умножения

 

0 X 0 = 0

0 + 1 = 1

Л

1—0=1

О Х 1=С

1 + 0 = 1

1— 1 =0

1 X 0 = 0

1 + 1 = 1 + .

10— 1= 1

1 x1 = 1

+единица переноса

 

 

в старший

разряд

 

 

52

Правила арифметики во всех позиционных системах аналогичны. Поэтому сложение двух чисел в двоичной системе можно выполнять столбиком, начиная с младше­ го разряда, подобно тому, как мы это делаем в десятич­ ной системе. В каждом разряде в соответствии с прави­ лами, указанными таблицей двоичного сложения, про­ изводится сложение двух цифр слагаемых или двух этих цифр и единицы, если имеется перенос из соседнего младшего разряда. В результате получается цифра со­ ответствующего разряда суммы и, возможно, также еди­ ница переноса в старший разряд. Приведем пример на сложение двух двоичных чисел.

Переносы 11 111

 

110111.01

55,25

++

10011,10

19,5

1001010,11

74,75

0

 

Справа показано сложение тех же чисел, представлен­ ных в десятичной системе.

Вычитание чисел в двоичной системе выполняется подобно вычитанию в десятичной системе. При вычи­ тании в данном разряде при необходимости занимается единица из следующего старшего разряда. Эта занимае­ мая единица равна двум единицам данного разряда. За­ нимание производится каждый раз, когда цифра в раз­ ряде вычитаемого больше цифры в том же разряде умень­ шаемого. Поясним сказанное примером:

11011,10

1101,01

1110.01

Умножение двоичных многоразрядных чисел произ­ водится путем образования частичных произведений и последующего их суммирования. В соответствии с таб­ лицей двоичного умножения каждое частичное произве­ дение равно нулю, если в соответствующем разряде множителя стоит нуль, или равно множимому, сдвину­ тому на соответствующее число разрядов влево, если в разряде множителя стоит единица. Таким образом, операция умножения многоразрядных двоичных чисел сводится к операциям сдвига и сложения. Положение запятой определяется так же, как при умножении деся­

53

тичных чисел. Сказанное поясняется примером:

1 0 1 1 ,1 X 1 0 1 ,0 1 = 111100,011

^

10111

 

А

10101

 

 

10111

+

 

00000

10111

 

00000

 

10111

 

111100011

Деление чисел в двоичной системе производится ана­ логично делению десятичных чисел. Достаточно рассмот­ реть деление двух целых двоичных чисел, так как дели­ мое и делитель всегда могут быть приведены к такому виду путем перенесения запятой в делимом и делителе на одинаковое число разрядов и дописывания нулей в недостающие справа разряды.

Особенности выполнения деления двоичных чисел по­ ясняются примером:

1100,011:10,01= ? _1100011

I10010

, 10Ё.9___

101,1

__11011

10010

10010

10010

00000

Благодаря простоте правил двоичного сложения, вы­ читания и умножения применение в ЦВМ двоичной си­ стемы счисления позволяет упростить схемы арифмети­ ческих устройств.

Перейдем к рассмотрению правил перевода чисел из одной системы счисления в другую. Необходимость в та­ ких преобразованиях возникает из-за того, что ЦВМ работает в двоичной системе счислений, программа за­ писывается в шестнадцатиричной или восьмеричной сис­ теме, а подготовка исходных данных для расчетов и вы­ дача результатов расчета из машины производятся в де­ сятичной системе.

Обычно преобразования чисел из одной системы счи­ сления в другую выполняются автоматически устройст­ вами машины. Однако при программировании задач, а также при вмешательстве оператора в процесс реше­ ния задачи на ЦВМ может возникать необходимость

54

ручного перевода отдельного числа или небольшой груп­ пы чисел из одной системы в другую.

Правила перевода зависят от того, какая арифме­ тика используется при выполнении арифметических опе­ раций, связанных с преобразованием чисел, — арифмети­ ка той системы счисления, в которой представлено исход­ ное число, или арифметика системы счисления, в кото­ рую число переводится.

Пусть необходимо перевести число у , представленное в системе счисления с основанием s:

У — &г ®г—1—2■ • ■ Bi 8Q8—1• • • 8_<7

в /і-систему, выполняя нужные для этого арифметичес­ кие действия в новой /г-системе. Для этого достаточно число представить в виде соответствующей суммы сте­ пеней s:

У — 8Г • Sr -)- —1’ Sr~ 1“Ь • • * “Ь 8Х • S1 ~f- 80S° -f-

+8- r s - 1 Н --------h

вкоторой основание s и все коэффициенты е< выражены

вновой /г-системе, и выполнить в /г-системе все необхо­ димые для вычисления этой суммы действия.

Пример 1. Перевести в десятичную систему шестнад­ цатиричное число у — (2ЕЪ,А)ІВ. Для этого представля­ ют у в виде

у = 2 -162 h 141б' + 5> 16°+10* 16_1 = (741,625)10-

Пример 2. Перевести в десятичную систему двоич­ ное число г = ( 11011,101)2:

z = i . 2 4+ i- 2 3+ o .2 a+ ь ^ + ь г ^ ь г -1 +

+ 0 • 2 2Ң-1 3 = (27,625)10.

Рассмотрим теперь перевод числа из s-системы в /г-систему посредством арифметических операций исход­ ной s-системы. В этом случае правила для перевода це­ лых чисел и дробей различны.

Перевод целых чисел. Пусть целое число у, представ­ леное в s-системе, требуется перевести в /г-систему. Ис­ комая запись числа у в А-системе имеет вид:

у = ог ст,_, • • -о0 = or-hr +

-hr~l Ң-------

1- о0-А°.

55

Разделив у на /г, получим:

= а. hr

+ ar - i’h' N -------b о, -f

Оц

h '

Отсюда

У = У\к f G0,

где у 1 есть частное от деления числа у на основание си­ стемы h, а младшая цифра искомого представления чис­ ла у в /г-системе есть остаток от этого деления.

Если теперь разделить у\ на /г, то получим:

Уі

1 г -2

,

1 г -

= о -п

+ °г -Г Н + ••• + +

h

В силу

Уі = У*Ь + ая,

остаток от второго деления есть цифра стг следующего разряда в представлении числа у в h-системе и т. д.

Таким образом, получаем правило: для перевода це­ лого числа из s-системы счисления в /г-систему нужно последовательно делить это число и получаемые частные на основание h новой системы, представленное в старой s-системе, до тех пор, пока частное не станет меньше h. Старшей цифрой в записи числа в /г-системе служит по­ следнее частное, а следующие за ней цифры дают остат­ ки, выписываемые в последовательности, обратной их получению.

В качестве примера переведем десятичное число 73 в двоичную систему:

73I 2

~зГ

72I

Ё

I 2

 

 

 

IF

О— ,

18 —

О

О 1 1

О

(73)І0 = (1001001 )г .

Перевод дробных чисел. Перевод в /г-систему правиль­ ной дроби z, представленной в системе счисления с осно-

56

ваннем s, означает запись этой дроби в виде

2 = 0, о

о_2• •

- • • = CT_ J Іі~х + о_2- h~2+

 

Н---- i-a _ q ' h ~ q -\---

 

Умножая 2 на ft, получаем:

 

 

zh = о_ j -)- о

2h +•••-+- Q_qh

*~Ь • • • +

= o_i + Zj,

где а_і и 2 і соответственно целая

и дробные части этого

произведения. При этом

целая

часть о_і

есть старшая

цифра в представлении числа 2 в /і-системе.

Если теперь умножить на h правильную дробь z\, то целая часть произведения дает следующую цифру а-2 в представлении числа в h системе.

Следовательно, можно сформулировать правило: для перевода правильной дроби из s-системы в систему счис­ ления с основанием h нужно умножить исходную дробь и дробные части получающихся произведений на основа­ ние h, представленное в старой s-системе. Целые части получающихся произведений дают последовательность цифр в представлении дроби в h-системе.

В качестве примера переведем десятичную дробь 0,1875 в двоичную систему:

0,1875

X _______ 2

х ° ’375° (0 , 1875)10 = (0 ,0011)*

0,7500

X _______ 2

1,5000

X_______ 2

1,0000

Обычно перевод дробей из одной системы в другую производят приближенно.

При переводе неправильной дроби переводят отдель­ но целую и дробную части, руководствуясь соответству­ ющими правилами.

2-3. П Р Е Д С Т А В Л Е Н И Я Ч И С Е Л В Ц В М С Ф И К С И Р О В А Н Н О Й И П Л А В А Ю Щ Е Й ЗА П Я Т О Й

Разряд двоичного числа представляется в ЦВМ неко­ торым техническим устройством, например триггером, двум различным состояниям которого приписывают зна-

57

чения 0 и 1. Набор таких устройств, предназначенный для представления в машине многоразрядного числа (слова), называется регистром. На рис. 2-1 схематично представлена структура такого регистра для представ­ ления п-разрядного двоичного числа. Отдельные запо­ минающие элементы регистра пронумерованы на рисун­ ке цифрами от 0 до п—1 (всего п разрядов).

Требования к точности вычислений определяют выбор числа разрядов. Вообще говоря, в ЦВМ путем соответст­ вующего увеличения числа разрядов может быть получе­ на любая точность вы­

 

 

1

числений,

однако это

10

12 3

п-2 п-/,

сопряжено

с

увеличе­

нием количества

аппа­

 

п элементов

ратуры.

Хотя

обычно

Рис. 2-1. Структура двоичного

точность в

7—8 деся­

тичных

разрядах

до­

 

регистра.

статочна для представ­

ных

расчетов,

 

ления

исходных

дан­

вычисления на ЦВМ выполняются с 9—

10, а в ряде случаев с 15—16 десятичными разрядами для уменьшения потери точности от ошибок округления.

В ЦВМ применяют две формы представления чисел: представление чисел с фиксированной запятой («естест­ венная форма») и представление чисел с плавающей за­ пятой («полулогарифмическая форма»).

При представлении чисел с фиксированной запятой положение запятой закрепляется в определенном месте

\относительно разрядов числа и сохраняется неизменным для всех чисел, изображаемых в данной разрядной сет­ ке машины. Обычно запятая фиксируется перед старшим разрядом или после младшего. В первом случае в раз­ рядной сетке машины могут быть представлены только числа, которые по модулю меньше единицы, во втором— только целые числа.

Для кодирования знака числа используется «знако­ вый» разряд (нулевой на рис. 2-1). Нуль в этом разряде соответствует плюсу, а единица — минусу.

На рис. 2-2 в качестве примера показана разрядная сетка машины («формат данных») для представления 32-разрядных (включая знак) чисел с фиксированной за­ пятой для случаев закрепления запятой перед старшим и после младшего разряда.

На разрядной сетке указан вес каждого разряда. На­

58

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