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

книги из ГПНТБ / Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие

.pdf
Скачиваний:
8
Добавлен:
23.10.2023
Размер:
6.44 Mб
Скачать

для изображения одной десятичной цифры, называется тетрадой. Из возможных шестнадцати тетрад используются только первые десять (см. таблицу 1-3).

Например, десятичное число 5789 в двоично-десятичной системе имеет вид:

5

7

8

9

0101

0111

1000

100Г

Двоично-восьмеричная система записи восьмеричных чисел

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

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

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

Двоичная

цифра

триада

0

0 00

1

001

2010

3011

4100

5101

6ПО

7111

Например, восьмеричное число 2357 в двоично-восьмеричной системе имеет вид

9

3

3

7

010

ОН

101

и г

§ 2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПОЗИЦИОННЫХ СИСТЕМ СЧИСЛЕНИЯ ПРИ ИСПОЛЬЗОВАНИИ ИХ В ЦВМ

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

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

гистерезиса,

реле,

электронная лампа, полупроводниковый триод

и т. д.).

 

 

 

 

Однако

удобство представления

двоичных

цифр при помощи

двухпозиционных

элементов лишь

условно.

Для представления

10

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

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

q и числе разрядов п могут быть представлены N = qn различных чисел от 0 до qn~l.

Тогда количество элементов схемы при системе счисления с ос­

нованием q равно

 

M = q-n.

(1.13)

Из выражения N -- qn находим п

 

In N

(1.14)

п = ----- .

In q

 

Подставляя в (1.13) значение п из (1.14), получим

 

M = \nN - - 2 -

(1.15)

ln q

 

Для нахождения экстремального значения функции (1.15) при­ равниваем первую производную М ' нулю

^ - = 1п N. In q — 1 0, dq In2 q

откуда

\n q — 1 = 0,

q = e = 2,718.

Нетрудно показать, что функция 1.15 при q = е = 2,718 имеет

минимум.

При целых основаниях отношение

имеет

следующие

значения

 

 

 

In q

 

 

 

 

 

 

 

 

q .......................................................

2

3

4

8

10

16

S ..................................................

2,9

2,72

2,9

3,84

4,35

5 ,7 7 .

In q

 

 

 

 

 

 

Как видно, наиболее' экономичной с точки зрения количества аппаратуры является троичная система, двоичная и четверичная системы равноценны, десятичная система требует в 1,45 раза больше оборудования, чем двоичная.

Однако, кроме экономичности, при выборе системы счисления необходимо учитывать еще ряд факторов:

а) сложность и быстродействие физических элементов, имею­ щих q устойчивых состояний,

б) простоту выполнения арифметических и логических опера­ ций.

11

Троичная система, несмотря на экономичность, из-за отсутствия надежных и простых элементов с тремя устойчивыми состояниями, а также из-за полного отсутствия троичных запоминающих устройств

вЦВМ почти не применяется.

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

Кроме основной двоичной системы в ЭВМ используются две вспо­ могательные системы: восьмеричная и двоично-десятичная. Восьме­ ричная система применяется для сокращенной записи двоичных чисел при программировании. Двоично-десятичная система исполь­ зуется как промежуточная при переводе чисел из десятичной си­ стемы в двоичную и наоборот. Непосредственно вычисления в дво­ ично-десятичной системе не ведутся.

§3. АРИФМЕТИКА ДВОИЧНЫХ И ВОСЬМЕРИЧНЫХ ЧИСЕЛ

Арифметические действия над числами в любой системе счис­ ления выполняются по правилам, применяемых в десятичной си­ стеме .

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

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

ности

между

десятичным

результатом

и

ti-q.

 

 

 

Пример

1.

Необходимо

 

перемножить два восьмеричных числа:

 

 

 

 

 

 

 

 

 

 

X

778

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

66я

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

572

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

572

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6512й

 

 

 

 

 

1)

7

X

6

=

5 : -

4210

=- 5

X

8

“Т

2

=-

2

-L1-

5 единиц

переноса

2)

7

X

6

+

4710

== 5

X

8

+

7

=--

7

+

5

»

»

3)

2

 

0 =

 

 

= 0 X

8 ~]т 2 =- 2 +

0

»

»

4)

7 “Г 2 =

1

 

9ю =- 1 X

8

1 1 : - 1 +

1

»

»

5)

5

+

7

-

1310

-= 1 X

8

+

5

==

5

“1“

1

»

»

6)

5 +

1 =

 

 

6ю == 0 X

8 + 6 - =

6 “Г 0

»

»

 

Все указанные шесть операций в десятичной системе необходимо

выполнять в уме, окончательный результат записывается восьме­ ричным числом.

12

Пример 2. Необходимо сложить четыре двоичных числа

, 1 1 1 1 2

 

 

 

 

 

 

 

 

t

ИИ»

 

 

 

 

 

 

 

 

 

 

L Ш И

 

 

 

 

 

 

 

 

 

 

^ 11П2

 

 

 

 

 

 

 

 

 

 

111100.2

 

 

1)

1 4

1

1 -г

1

-

2 X

2 4 -0 = 0 4

2 единицы

переноса

 

 

4ю :

 

 

 

»

2)

1

+ 1 -f

1 + 1 4- 2 = 6 1 0 = 2 x 3 4- 0 = 0 4 - 3 »

3)

1

-f 1 +

1 4- 1 4- 3 = 7ю -

2 x 3 - 4 1 = 1 + 3 »

»

4)

1

+ 1 4-

1 4- 1 4- 3 = 7ю -

2 x 3 4 - 1 = 1 4 - 3 »

»

5)

0

 

 

4- 3 - "

310

- 2 х

1 4 1 = 1 4- 1

»

6)

0

 

 

4- 1 ^ :

 

2 х 0 4- 1 = 1 4 - 0

»

 

Все указанные операции в десятичной системе выполняются в уме, окончательный результат записывается в двоичной системе.

Арифметика двоичных чисел

В двоичной системе счисления таблицы сложения, вычитания и умножения чрезвычайно просты. Каждая из них состоит всего из

четырех строчек (табл.

1-4).

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а 1-4

Сложение

Вычитание

 

 

Умножение

0 4 - 0 = 0

0 0 = 0

 

0 X 0 = 0

1 4 - 0 = 1

1

0 = 1

 

о

1 X 0 = 0

0 4 - 1 = 1

1

- 1 = 1

-

.

0 X

1

= 0

1 4 - 1 = ю

1 0 — 1 = 1

 

 

1 X

1

= 1

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

Пример 3. Сложить два двоичных числа

119 _п_

 

 

 

16

 

1110111,1011

15

и

'

1111,1011

 

16

 

10000111,0110

135

 

 

10

13

Пример 4. Вычесть два двоичных числа

_ 10100001

_ 161

1100011

99

111110

6210

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

Пример 5. Умножить два двоичных числа

 

 

101

111,101

X

 

X

 

 

 

 

101,001

8

 

 

 

 

,

 

101 111 101

244 —

;

m i n i

m i

6410

+

10111110 1

 

 

11110100,000 101

 

Пример 6. Разделить два двоичных числа

101100,0 1 1 [1000,111

 

Ю00111

 

 

44Т : 8 Т = 5“

1000 111

 

 

1000 111

 

 

0000

000

 

 

Арифметика восьмеричных

чисел

 

Таблицы сложения,

вычитания и умножения восьмеричных чи­

сел достаточно сложны,

поэтому запоминать их нет необходимости.

Действия над числами в восьмеричной системе выполняются по правилам десятичной системы счисления по методике, изложенной выше в данном параграфе.

Пример 7. Сложить два восьмеричных числа

, 575,25 477,77

1 275,248 '

Пример 8. Вычесть два восьмеричных числа

_701007 2777

6760108'

14

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

• 7 77 7 8

_700001

_______ 17_

6777628'

Пример 9. Умножить два восьмеричных числа

v 17653

А172

, 37526

Г156655

17653

3613576,

Пример 10. Разделить два восьмеричных числа

1077 131

257

257

000

§ 4. ПЕРЕВОД ЧИСЕЛ ИЗ ОДНОЙ ПОЗИЦИОННОЙ СИСТЕМЫ В ДРУГУЮ

Перевод целых чисел

Пусть целое число N, заданное в ^-ичной системе, необходимо перевести в s-ичную систему.

Преобразовать число N в s-ичную систему, значит представить

его в виде

 

 

 

 

 

 

 

N = aksk +

 

 

+ . . . + a2s2+ a,s1 +

a0s°= V a / ,

(1.16)

 

 

 

 

 

 

 

i=0

 

где ak, a.k_ v

. . . a 2>ai> ao — цифры s-ичной системы от 0 до

s— 1.

Заменим

в правой

части равенства (1.16) коэффициенты ак,

ak-v ■•

• a 2 > a i>

 

ао и

основание s их ^-ичными

изображениями

bk, bk__v

. . . b,,

 

blt b0 и sq

 

 

 

N ■■b.sk + b

o k —

■6ns° =

У b.sl .

(1.17)

 

k q

1

k - \bq

\ s] + bis;-

0 q

ZJ i q

 

 

 

 

 

 

 

 

i==0

 

15

Разделим обе части равенства (1.17) на sq

N

k - \

 

 

 

 

 

 

 

 

 

b.s1

bk - $ ~ 2+

• • •

+ b2Sl + bl +

k

q

 

 

 

k

 

 

 

 

 

 

(1.18)

 

 

= 2

bt i '

1

 

 

 

 

 

 

i --- i

 

 

 

 

 

 

 

где —— правильная дробь.

 

 

 

 

 

 

 

sq

 

ясно, что при делении

N

на sq остаток ра-

Из равенства (1.18)

вен Ь0, а частное

 

k

b.sc~ l .

 

 

 

 

 

N, = У

 

 

 

 

 

и ’

1

i = 1

I q

 

 

 

 

 

 

 

 

 

 

 

получим

 

 

 

Разделим снова ЛД на sq, тогда

 

 

 

 

 

IVi

=V

 

&.S1' - 2

&1

 

 

(1.19)

 

 

 

1

17

 

 

 

 

 

 

 

1=2

 

 

 

 

 

 

Из равенства (1.19) видно, что остаток равен

blt а новое частное

1=2

 

& раз,

найдем

все

числа

60, Ьх, . . . bk_ r

Выполняя процесс

Последнее частное будет

равно

N k =

bk.

Последовательное деле-

ние производят до тех пор, пока не получится частное, меньшее, чем sq. Это последнее частное даст старшую s-ичную цифру числа N.

Таким образом, для перевода целого числа N из позиционной системы с основанием q в позиционную систему с основанием s его надо последовательно делить на основание s, записанное в исходной системе q (sq). Деление производится до тех пор, пока не получится частное, меньшее, чем sq. Число в новой системе запишется в виде остатков деления Ь0, Ьх, . . . bk_ y Последнее частное N k = bk дает

старшую цифру s-ичного числа. Все арифметические действия вы­ полняются в исходной системе счисления q.

Перевод

правильных дробей

 

 

 

 

 

 

 

Пусть

N — правильная ^-ичная дробь. Предположим,

что ее

s-ичная запись найдена:

 

 

 

 

 

 

 

 

N = a—Г

—2°

—З1,

+ • •

-а- > Г

 

 

 

( 1.20)

 

с—1

с—2

 

с—3

 

 

 

 

i=l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где a_v а_2, . . . a_k s-ичные

цифры

от 0 до s— 1.

Заменяя а_

а 2> •

• • a_k

и s их

д-ичными

изображениями

b_1 ,

Ь_2 ,

. . . b

и sq,

получим

 

 

 

 

 

 

 

 

 

 

 

 

 

у

 

 

+ ь

_

i b- s

( 1. 21)

U = b_xs - '+ b _ 2s-* + b лО

 

 

 

 

 

 

 

2 q

 

- 3 q

 

-ъ ч

 

 

 

 

 

 

 

 

 

 

 

 

i=i

 

 

16

Умножим обе части равенства (1.21) на sq

к

( 1.22)

Целая часть равенства (1.22) равна b_v а дробная часть

к

Умножая ЛЦ на sq, получим

к

=

b- i so~ {i~ 2)-

(1.23)

 

Целая часть равенства (1.23) равна b_v а дробная

часть

k

 

 

* 2 = 2

й- А Г (,-'2)-

 

(= 3

 

 

Путем последовательного умножения числа N и дробных частей

получающихся произведений на

sq получим в виде

целых частей

этих произведений <7-ичные записи s-ичных цифр.

из системы q

Таким образом, для перевода правильной дроби

в систему s ее надо последовательно умножать на основание s, вы­ раженное в ^-ичной системе (sq). Перемножаются только дробные

части N,

ЛЦ,

N 2, . . . N k. Правильная дробь в новой системе за­

пишется

в виде целых частей получающихся произведений b_v

b_2 » . . •

Ь_к.

Целая часть первого произведения дает старшую

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

Последовательное умножение продолжаем до тех пор, пока по­ сле очередного умножения на sq дробная часть не окажется равной нулю (точное преобразование в s-ичную дробь), или пока не полу­ чим достаточное для заданной точности количество разрядов.

Перевод неправильных дробей

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

Перевод чисел из десятичной системы в двоичную

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

2 Заказ № 2437

1

. . !

17

I ЧЛТАДЬ; '‘W

ИЛ ;

Пример

11.

Перевести десятичное число 9510 в двоичное

 

95

 

11

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

47

11

 

 

 

 

 

 

 

15

 

4

 

 

 

 

 

 

 

 

23

1

 

 

 

 

 

14

 

7

2

 

11

I2

 

 

 

 

1

 

6

3

 

10

 

 

 

 

 

 

5

I 2

 

 

 

 

 

1

2

 

1

4

2

 

 

 

 

 

 

1

 

 

1

2

 

2_

 

 

 

 

 

 

 

 

t 0 I

 

Т

ч-

9510= 10111112=

1-26 + 0-25+

1-24+ Ь 2 3+ 1-22+

1-21+

1-2°

 

 

= 64 + 0 + 16-f8 + 4 + 2-}-1 — 95ю.

 

 

 

Пример 12. Перевести десятичное число 12910 в двоичное

129

11

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

64

 

11

 

 

 

 

 

 

 

9

6

 

 

 

 

 

 

 

 

 

32

I2

 

 

 

 

 

 

8

4

 

2

 

 

 

 

 

 

 

16

I2

 

 

 

 

1

4

 

12

 

 

 

 

 

 

16

8

I2

 

 

 

 

0

 

12

0

8

 

 

 

 

 

4

 

 

 

 

 

 

0

 

0

 

4

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

ш

 

~

12910=

10000001а= 1-27 + 0-26 + 0-25 + 0-24 + 0-23 +

0-22 +

 

 

 

+ 0-2х +

1-2° = 128+ 1 =

12910.

 

 

 

Пример

13.

Перевести десятичное

число

0,62510

в

двоичное:

 

 

 

|

0,

625

 

 

 

 

 

 

 

 

 

X

2

 

 

 

 

 

 

 

 

1,

250

 

 

 

 

 

 

 

 

 

X 2

 

 

 

 

 

 

 

 

0,

500

 

 

 

 

 

 

 

 

 

X 2

 

 

 

 

 

 

 

 

1,

000

 

 

 

 

0,625 = 0,1012 = 0 -2°+ 1 • 2-1 + 0- 2~2+ 1 • 2_3 = .

 

 

 

 

= — + — = — = 0,62510.

 

 

 

 

 

 

2

8

8

 

 

 

 

 

18

Пример 14. Перевести десятичное число 0,585 в двоичное

1,

585

 

X 2

1,

170

 

X 2

о,

340

 

X 2

0,

680

 

X 2

1,

360

 

X 2

0,

720

 

X 2

1,

440

0,58510 = 0,100101» с точностью до 2_6.

При переводе неправильных десятичных чисел отдельно пере­ водят целую и дробную части. Например, 129, 62510 = 10000001012.

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

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

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

Пример 15. Перевести десятичное число 3510 в двоичное. Число 3510 в двоично-десятичной системе имеет вид

ООП

0101

2 тетрада

1 тетрада

3510 = 00110Ю12_ 10 = 01012-Ю°0 + 00112- Ю}0 =

= 01012-12+ 00112-10102= 0101 + 11110= 1000112=

= 1-25 + 0-24+ 0-23 + 0-22+ 1-21+ 1.2» = 32 + 2 + 1 = 3510..

2

19

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