Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 196

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

чисел в двоичные и наоборот. Эти правила исключитель­ но просты, поскольку основания восьмеричной и шест­ надцатиричной систем есть целые степени числа два: 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