Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.04.2024
Просмотров: 196
Скачиваний: 0
чисел в двоичные и наоборот. Эти правила исключитель но просты, поскольку основания восьмеричной и шест надцатиричной систем есть целые степени числа два: 8= 23, 16= 24.
Для перевода восьмеричного числа в двоичную фор му достаточно заменить каждую цифру восьмеричного числа соответствующим трехразрядным двоичным чис лом. Таким же образом для перехода от шестнадцати ричной системы к двоичной каждая цифра шестнадца
тиричного числа заменяется |
соответствующим четырех |
||||||
разрядным |
двоичным |
|
числом. При этом |
отбрасывают |
|||
ненужные |
нули. Например, |
восьмеричное |
число 306,4 |
||||
в двоичной форме записи имеет вид: |
|
||||||
|
3 |
0 |
|
5 |
, 4 |
=(11000101,1),, |
|
0П |
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