Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Схемотехника ЦУ3М (1,2)посл.вариант.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
3.54 Mб
Скачать

5 Арифметические основы цифровой техники

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

5.1 Системы счисления

Начнем с определения системы счисления. Система счисления – это совокупность правил записи чисел цифровыми знаками. Системы счисления бывают позиционные и непозиционные. В настоящее время и в технике и в быту широко используются как позиционные, так и непозиционные системы счисления. Рассмотрим сначала примеры непозиционных систем счисления.

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

Сейчас, как и в глубокой древности, для записи числа используются так называемые "палочки". Эта форма записи чисел наиболее понятна и требует для записи числа всего один символ. Число образуется суммой этих "палочек". Однако при записи больших чисел возникают неудобства. Число получается громоздким и его трудно читать.

В следующем варианте непозиционной системы счисления используется несколько символов (цифр). Каждая цифра обозначает определенное (различное) количеств единиц. Результирующее число точно так же как и в предыдущем варианте образуется суммой отдельных цифр. Наиболее яркий вариант использования такой системы счисления – это денежные отношения. Мы с ними сталкиваемся каждый день. В процессе товарно-денежных отношений никому не приходит в голову, что сумма, которую мы выкладываем за товар, может зависеть от того, в каком порядке мы расположим монеты на столе! Номинал монеты или банкноты не зависит от того, в каком порядке она была вынута из кошелька. Это классический пример непозиционной системы счисления.

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

Значение цифры в позиционной системе счисления зависит от её позиции в записываемом числе. В позиционной системе счисления выделяются два очень важных понятия – основание системы счисления и вес цифры. Дело в том, что в позиционной системе счисления число представляется в виде формулы разложения:

Ap = an pn + an–1 pn–1 + … + a2 p2 + a1 p1 + a0 p0 + a–1 p–1 + a–2 p–2 + … + ak pk,

,

где p – основание системы счисления;

pi – вес единицы данного разряда;

ai – цифры, разрешённые в данной системе счисления.

При этом количество цифр в системе счисления зависит от ее основания p. Количество цифр равно основанию системы счисления. В двоичной системе счисления используются две цифры, в десятичной – десять, а в шестнадцатеричной – шестнадцать. Число в любой позиционной системе счисления записывается в виде последовательности цифр, без уточнения веса разрядов:

A = an an–1 … a1 a0, a–1 a–2 … a– k ,

где ai – цифры данной системы счисления, а цифра, соответствующая единицам определяется по положению десятичной запятой (или десятичной точки в англоязычных странах). Каждая цифра, использованная в записи числа, называется разрядом.

Какие же системы счисления применяются в настоящее время? Первый ответ, который я ожидаю — это десятичная система счисления. А ещё? Да, да не удивляйтесь! Мы широко используем и другие системы счисления! Достаточно посмотреть себе на левую руку. Там мы увидим часы. Сколько минут помещается в часе? Шестьдесят! Сколько секунд помещается в минуте? Шестьдесят! Налицо признаки шестидесятеричной системы счисления. Это наследование древней вавилонской системы счисления, которую вместе с компасом и часами европейцы заимствовали от арабов.

А еще примеры? Да сколько угодно! Картушка компаса делится на восемь румбов. Чем не восьмеричная система счисления? А давно ли в России отказались от полушек (четверть копейки) или грошей (половина копейки)? А следующее значение монеты — две копейки! Чем не двоичная система счисления?

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

Десятичная система счисления.

Основание этой системы счисления (p) равно десяти. В этой системе счисления используется десять цифр. В настоящее время для обозначения этих цифр используются символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Число в десятичной системе счисления записывается как сумма единиц, десятков, сотен, тысяч и так далее. То есть веса соседних разрядов различаются в десять раз. Точно также записываются и числа, меньшие единицы. В этом случае разряды числа будут называться как десятые, сотые или тысячные доли единицы.

Рассмотрим пример записи десятичного числа. Для того чтобы показать, что в примере используется именно десятичная система счисления, используем индекс 10. Если же кроме десятичной формы записи чисел не предполагается использования никакой другой, то индекс обычно не используется:

A 10 = 247,56 10 =2*10 2 + 4*10 1 +7*10 0 +5*10 -1 +6*10 -2=

= 20010 + 4010 + 710 + 0,510 + 0,0610.

Здесь самый старший разряд числа будет называться сотнями. В приведённом примере сотням соответствует цифра 2. Следующий разряд будет называться десятками. В приведённом примере десяткам соответствует цифра 4. Следующий разряд будет называться единицами. В приведённом примере единицам соответствует цифра 7. Десятым долям соответствует цифра 5, а сотым – 6.

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

Двоичная система счисления.

Основание этой системы счисления (p) равно двум. В этой системе счисления используется всего две цифры. Чтобы не выдумывать новых символов для обозначения цифр, в двоичной системе счисления были использованы символы десятичных цифр 0 и 1. Для того чтобы не спутать систему счисления в записи числа используется индекс 2. Если же кроме двоичной формы записи чисел не предполагается использования никакой другой, то этот индекс можно опустить.

Число в двоичной системе счисления записывается как сумма единиц, двоек, четвёрок, восьмёрок и так далее. Это означает, что веса соседних разрядов различаются ровно в два раза. Точно также записываются и числа, меньшие единицы. В этом случае разряды числа будут называться как половины, четверти или восьмые доли единицы.

Рассмотрим пример записи двоичного числа:

A 2 =101110,1012 = 1*2 5 + 0*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0+1*2-1+

+0*2 -2+1*2 -3 = 3210 + 810 + 410 + 210 + 0,510 + 0,12510 = 46,62510

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

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

0 + 0 = 0 0 * 0 = 0

0 + 1 = 1 0 * 1 = 0

1 + 0 = 1 1 * 0 = 0

1 + 1 = 10 1 * 1 = 1

Ну, как? Вспомнили, сколько усилий вы прикладывали в школе для того, чтобы выучить таблицу умножения. Как всё просто было бы в двоичной системе счисления! А теперь попробуем выполнить несколько операций в двоичной системе счисления. В качестве примера возьмём десятичные числа 510 и 3,510. Сначала преобразуем их в двоичную форму:

A = 510 = 1012 = 1*22 + 0*21 + 1*20 = 410 + 110

B =3,510 = 11,12 = 1*21 + 1*20 + 1*2-1 = 210 + 110 + 0,510

Затем выполним суммирование этих чисел в двоичной системе счисления. Суммирование будем выполнять в "столбик". Так будет легче понять производимые арифметические действия:

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

1000,12 = 1*23 + 0*22 + 0*21 + 0*20 + 1*2-1 = 810 + 0,510 = 8,510

Как видно из получившегося числа, результат сложения совершенно одинаков. То есть при выполнении суммирования в двоичной системе счисления ошибки не произошло. Теперь выполним операцию двоичного вычитания. Вычтем из числа 510 число 3,510. В результате выполнения операции мы ожидаем получить десятичное число 1,5.

При вычитании разряда половинок сразу же возникает необходимость заёма из старшего разряда. Если из единицы вычесть число 0,5, то в качестве результата получим тоже половину единичного разряда. Записываем на место половинок единицу. Аналогичная ситуация после заёма единицы возникает и в разряде единиц. Придётся занять двойку. В результате операции вычитания на месте единиц тоже записываем единицу. В разряде двоек вычитаем из единицы единицу. В результирующее число на место двоек записываем ноль. В разряде четвёрок после заёма остался ноль. В результате вычитания нуля из нуля получаем ноль. Его и запишем на место четвёрок. Ну а теперь проверим, что же мы получили. Для этого преобразуем число из двоичной формы в десятичную:

001,12 = 1*20 + 1*2-1 = 810 + 0,510 = 1,510

Следующей рассмотрим операцию двоичного умножения. Умножать будем те же самые числа (510 и 3,510). В результате операции умножения ожидаем получить число 17,510. Умножение произведём в "столбик". Умножение в "столбик" в двоичной системе выполняется точно так же как и в десятичной системе счисления.

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

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

10001,12 = 1*24 + 0*23 + 0*22 + 0*21 + 1*20 + 1*2-1

= 1610 + 110 + 0,510 = 17,510

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

Основание этой системы счисления (p) равно восьми. Восьмеричную систему счисления можно рассматривать как более короткий вариант записи двоичных чисел, так как число восемь является степенью числа два. В восьмеричной системе счисления используется восемь цифр. Чтобы не вводить новых символов для обозначения цифр, в восьмеричной системе счисления используются символы десятичных цифр 0, 1, 2, 3, 4, 5, 6 и 7. Для того чтобы не спутать систему счисления, в записи восьмеричного числа используется индекс 8. Если же кроме восьмеричной формы записи чисел не предполагается использования никакой другой, то этот индекс обычно опускается.

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

Рассмотрим пример записи восьмеричного числа:

= = 85,5937510

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

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

Приведём таблицы операций сложения и умножения в восьмеричной системе счисления:

Таблица 5.1 – Таблица сложения восьмеричных чисел

+

1

2

3

4

5

6

7

1

2

3

4

5

6

7

10

2

3

4

5

6

7

10

11

3

4

5

6

7

10

11

12

4

5

6

7

10

11

12

13

5

6

7

10

11

12

13

14

6

7

10

11

12

13

14

15

7

10

11

12

13

14

15

16

Таблица 5.2 – Таблица умножения восьмеричных чисел

*

1

2

3

4

5

6

7

1

1

2

3

4

5

6

7

2

2

4

6

10

12

14

16

3

3

6

11

14

20

22

25

4

4

10

14

20

24

30

34

5

5

12

17

24

31

36

43

6

6

14

22

30

36

44

52

7

7

16

25

34

43

52

61

А теперь для иллюстрации действий в восьмеричной системе счисления выполним несколько операций. В качестве примера возьмём те же самые числа, что и в предыдущем случае – 510 и 3,510. Сначала преобразуем их в восьмеричную форму:

A = 510 = 58.

B = 3,510 = 3,48 = 3*80 + 4*8-1 = 310 +

Затем выполним суммирование этих чисел в восьмеричной системе счисления. В результате суммирования ожидаем получить число 8,510. Суммирование будем выполнять в столбик». Так будет легче понять арифметические действия:

При суммировании единичных разрядов возникает перенос в разряд восьмёрок. Для проверки переведём получившийся результат в десятичную форму:

10,48 = 1*81 + 0*80 + 4*8-1 = 810 + 0,510 = 8,510

Как видно из полученного десятичного числа результат совпадает. То есть при выполнении суммирования в восьмеричной системе счисления ошибки не произошло.

Теперь выполним операцию восьмеричного вычитания. Вычтем из числа 510 число 3,510. В результате выполнения этой операции мы ожидаем получить десятичное число 1,5:

При вычитании разряда восьмых частей сразу же возникает необходимость "заёма" из старшего разряда. Если из единицы вычесть число 0,48, то в качестве результата получим тоже число 0,48. Записываем на место восьмых частей четвёрку. В разряде единиц из оставшейся после "заёма" цифры 4 вычтем цифру 3.

Ну а теперь проверим, что же мы получили. Для этого преобразуем число из восьмеричной формы в десятичную:

1,48 = 1*80 + 4*8-1 = 110 + 0,510 = 1,510

Выполним операцию восьмеричного умножения. Умножать будем те же самые числа (510 и 3,510). В результате операции умножения мы ожидаем получить число 17,510. Умножение произведём в "столбик". Умножение в столбик в восьмеричной системе счисления выполняются точно так же как и в десятичной системе:

Первое частичное произведение образуется при умножении младшего разряда множителя на множимое. При умножении цифры 4 на цифру 0 получаем 0. Записываем младший разряд частичного произведения. Результат умножения цифры 4 на цифру 5 определяем по таблице 7.

Точно так же получаем и второе частичное произведение. Его мы сдвигаем на один восьмеричный разряд (как в десятичной системе счисления) и точно так же как и в десятичной системе счисления в конце операции умножения мы суммируем все частичные произведения.

Снова проверяем, что же мы получили. Для этого преобразуем число из восьмеричной формы в десятичную:

21,48 = 2*81 + 1*80 + 4*8-1 = 1610 + 110 + 0,510 = 17,510

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

Шестнадцатиричная система счисления.

Основание системы счисления (p) равно шестнадцати. В этой системе счисления используется шестнадцать цифр. Эту систему счисления можно считать ещё одним вариантом записи двоичного числа. В шестнадцатеричной системе счисления уже не хватает десяти цифр, поэтому дополнительно были введены шесть символов. Для обозначения этих цифр используются шесть первых букв латинского алфавита. При записи шестнадцатеричного числа неважно буквы верхнего или нижнего регистра будут использоваться в качестве цифр. Таким образом, в качестве цифр в шестнадцатеричной системе используются следующие символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Так как в шестнадцатеричной системе счисления появляются новые цифры, то приведём таблицу соответствия цифр этой системы их десятичным эквивалентам. В таблице 5.3 в левом столбце приведены шестнадцатеричные символы, а справа – их десятичные эквиваленты.

Таблица 5.3 – Таблица соответствия шестнадцатеричных цифр

десятичным значениям

Шестнадцатеричная цифра

Десятичный эквивалент

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

A

10

B

11

C

12

D

13

E

14

F

15

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

Рассмотрим пример записи шестнадцатеричного числа:

=

Приведём таблицы операций сложения и умножения в шестнадцатеричной системе счисления.

Для иллюстрации действий в шестнадцатеричной системе счисления выполним несколько операций. В качестве примера возьмём те же самые числа, что и в предыдущем случае, а именно 510 и 3,510. Сначала преобразуем их в шестнадцатеричную форму:

A = 510 = 516.

B = 3,510 = 3,816 = 3*160 + 8*16-1 = 310 +

Таблица 5.4. Таблица сложения шестнадцатеричных чисел

+

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

0

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

1

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

10

2

2

3

4

5

6

7

8

9

a

b

c

d

e

f

10

11

3

3

4

5

6

7

8

9

a

b

c

d

e

f

10

11

12

4

4

5

6

7

8

9

a

b

c

d

e

f

10

11

12

13

5

5

6

7

8

9

a

b

c

d

e

f

10

11

12

13

14

6

6

7

8

9

a

b

c

d

e

f

10

11

12

13

14

15

7

7

8

9

a

b

c

d

e

f

10

11

12

13

14

15

16

8

8

9

a

b

c

d

e

f

10

11

12

13

14

15

16

17

9

9

a

b

c

d

e

f

10

11

12

13

14

15

16

17

18

a

a

b

c

d

e

f

10

11

12

13

14

15

16

17

18

19

b

b

c

d

e

f

10

11

12

13

14

15

16

17

18

19

1a

c

c

d

e

f

10

11

12

13

14

15

16

17

18

19

1a

1b

d

d

e

f

10

11

12

13

14

15

16

17

18

19

1a

1b

1c

e

e

f

10

11

12

13

14

15

16

17

18

19

1a

1b

1c

1d

f

f

10

11

12

13

14

15

16

17

18

19

1a

1b

1c

1d

1e

Таблица 5.5. Таблица умножения шестнадцатеричных чисел

*

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

2

0

2

4

6

8

a

c

e

10

12

14

16

18

1a

1c

1e

3

0

3

6

9

c

f

12

15

18

1b

1e

21

24

27

2a

2d

4

0

4

8

c

10

14

18

1c

20

24

28

2c

30

34

38

3c

5

0

5

a

f

14

19

1e

23

28

2d

32

37

3c

41

46

4b

6

0

6

c

12

18

1e

24

2a

30

36

3c

42

48

4e

54

5a

7

0

7

e

15

1c

23

2a

31

38

3f

46

4d

54

5b

62

69

8

0

8

10

18

20

28

30

38

40

48

50

58

60

68

70

78

9

0

9

12

1b

24

2d

36

3f

48

52

5b

64

6d

76

7f

88

a

0

a

14

1e

28

32

3c

46

50

5b

65

6f

79

83

8d

97

b

0

b

16

21

2c

37

42

4d

58

64

6f

7a

85

90

9b

a6

c

0

c

18

24

30

3c

48

54

60

6d

79

85

91

9d

a9

b5

d

0

d

1a

27

34

41

4e

5b

68

76

83

90

9d

a9

b6

c3

e

0

e

1c

2a

38

46

54

62

70

7f

8d

9b

a9

b6

c4

d2

f

0

f

1e

2d

3c

4b

5a

69

78

88

97

a6

b5

c3

d2

e1

Затем выполним суммирование этих чисел в шестнадцатеричной системе счисления. В результате суммирования ожидаем получить число 8,510. Суммирование будем выполнять в "столбик". Так будет легче понять арифметические действия.

Для проверки переведём получившийся при выполнении операции суммирования результат в десятичную форму:

8,816 = 8*160 + 8*16-1 = 810 + 0,510 = 8,510

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

Теперь выполним операцию шестнадцатеричного вычитания. Вычтем из числа 510 число 3,510. В результате выполнения этой операции мы ожидаем получить десятичное число 1,5.

При вычитании разряда шестнадцатых частей сразу же возникает необходимость "заёма" из старшего разряда. Если из единицы вычесть число 0,816, то в качестве результата получим тоже число 0,816. Записываем на место шестнадцатых частей цифру восемь. В разряде единиц из оставшейся после "заёма" цифры 4 вычтем цифру 3. Проверим полученный результат. Для этого преобразуем число из шестнадцатеричной формы в десятичную:

1,816 = 1*160 + 8*16-1 = 110 + 0,510 = 1,510

Выполним операцию шестнадцатеричного умножения. Умножать будем те же самые числа (510 и 3,510). В результате операции умножения мы ожидаем получить число 17,510. Умножение произведём в "столбик". Умножение в столбик в шестнадцатеричной системе счисления выполняются точно так же как и в десятичной системе.

Первое частичное произведение образуется при умножении младшего разряда множителя на множимое. При умножении цифры 8 на цифру 0 получаем 0. Записываем младший разряд частичного произведения. Результат умножения цифры 8 на цифру 5 определяем по таблице 5.5.

Точно так же получаем и второе частичное произведение, сдвигаем его на один шестнадцатеричный разряд (как в десятичной системе счисления) и точно так же как и в десятичной системе счисления в конце операции умножения суммируем все частичные произведения.

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

11,816 = 1*161 + 1*160 + 8*16-1 = 1610 + 110 + 0,510 = 17,510

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