
- •Глава 1
- •1.1. Понятие абстрактного автомата
- •1.2. Преобразование абстрактных автоматов
- •1.3. Соединение (композиция) автоматов
- •1.4. Тестирование абстрактных автоматов
- •2. Начальные языки описания абстрактных автоматов
- •2.1. Язык Граф-Схем Алгоритмов
- •2.2. Язык регулярных выражений
- •2.3. Формальные грамматики и языки
- •2.4. Автоматы и грамматики [ 7 ]
- •2.5. Машина тьюринга [ 5, 8 ]
- •3. Структурный синтез автоматов и кодирование информации
- •3. 3. ПредставЛение символьной информации
- •4.1 Машинное изображение чисел
- •4.2. Выполнение арифметических и логических операций
- •4.3. Микропрограммирование
- •5 Математический аппарат синтеза комбинационных автоматов
- •5.1 Элементная база построения комбинационных автоматов
- •5.2. Переключательные функции (логика высказываний)
- •7. Структурный синтез автоматов с памятью, асинхронные автоматы и сети петри
- •7.1. Канонический метод синтеза автоматов с памятью
- •7.3 Моделирование дискретных асинхронных процессов и сети Петри
- •Свойства сетей Петри
3. 3. ПредставЛение символьной информации
Современные ЭВН предназначены для обработки не только число вой, но и любой символьной информации. Наибольшее распространение получила система кодирования знаков, называемая ASCII - American Standard Code for information Interchange, предложенная в 1963 г. Это семиразрядный код, обеспечивающий 27= 128 различных битовых комбинаций:
32- 48- 0 64- @ 80- Р 96- ' 112- Р
33- ! 49-1 65- А 81- Q 97- а 113- q
34- " 50- 2 66- В 82- R 98- b 114- г
35- # 51-3 67- С 83- S 99- c 115- s
36- $ 52-4 68- D 84- T 100- d 116- t
37- % 53- 5 69- E 85- U 101- е 117- u
38- & 54-6 70- F 86- V 102- f 118-v
39- ' 55-7 71- G 87- W 103- g 119- w
40- ( 56-8 72- H 88- X 104- h 120- x
41- ) 57- 9 73- I 89- V 105- i 121- y
42- « 58- : 74- J 90- Z 106- j 122- z
43- + 59- ; 75- K 91- [ 107- k 123- {
44- , 60- < 76- L 92- \ 108- 1 124- :
45-- 61- = 77- H 93- ] 109- m 125- }
46- . 62- > 78- N 94- ^ 110- n 126-"
47-/ 63- ? 79- O 95- _ 111- о 127- |
Этот код, наряду с отображаемыми символами, включает также и управляющие символы с номерами 1...32: 1 - начало заголовка; 2 -начало текста; 3 - конец текста, 4 - конец передачи и т. д.
Позднее было предложено расширение стандарта ASCII за счет введения еше одного разряда, что добавило еще 128 комбинаций с номерами 128...255, Эти комбинации дозволяют закодировать символы национальных алфавитов, базирующихся на латинском алфавите, а также псевдографики и математические символы.
Для представления символов кириллицы применяется альтернативная кодировка ASCII, в которой коды с номерами 128...175 и 224...241 заняты символами кириллицы. Указанные коды не затрагивают символов псевдографики, однако часть математических символов, уже не может быть представлена.
Восьмиразрядный двоичный код оказался очень удобной единицей для представления и обработки дискретной информации в ЭВН и поэтому получил специальное наименование - байт. Таким образом 1 байт = 8 двоичных разрядов. Оказалось удобным делать размер ячеек памяти ЭВН кратным байту.
3.4, ПРЕДСТАВЛЕНИЕ ЧИСЛОВОЙ ИНФОРМАЦИИ [ 2,3, 5 ]
Основой представления числовой информации является понятие
системы счисления и машинного изображения чисел,
Система счисления - это совокупность приемов и правил для наименования и обозначения чисел. В каждой системе счисления используется конечное множество (алфавит), символов, называемых цифрами. Системы счисления разделяются на позиционные и непозиционные. В непозиционных системах счисления значение цифры не за висит от ее положения в записи числа.
функцию перевода числа X,записанного в любой системе счисления, в десятичную систему будем обозначать DEC(Х), Примером непозиционной системы является унитарный код. Этот код использует всего один символ, который обозначим "1". Значение унитарного кода 11111u однозначно определяется числом символов 1 в записи кода: DEC(11111u) = 5.
К записи унитарного кода мы добавили символ u (unitary), чтобы было ясно, о какой системе счисления идет речь, поскольку запись 11111 может трактоваться не только как унитарный код, но и как, например, десятичное число. Унитарный код, в силу примитивности лежащего в его основе принципа, использовался первобытным человеком с древнейших времен. а с другой стороны -находит применение в современных вычислительных системах для представления не очень больших чисел в аналого-цифровых преобразователях (АЦП).
Римская система счисления использует алфавит цифр А = {I,V,X,L,С,M} и занимает промежуточное положение между позиционными и непозиционными системами счисления:
DEC(I) = 1, DEC(II) = 2, DEC(III) = 3, DEC (IV) = 4,
DEC(V) = 5, DEC(VI) = б, .... DEC(X) = 10,
DEC{XI) =11 .... DEC(XL) = 40, DEC (L) = 50,
DEC(C) = 1000 DEC(M) = 10000.
В позиционных системах счисления значение каждой цифры определяется ее позицией (разрядом) в записи числа. Наибольшее распространение получили весомозначные позиционные системы, в которых значения цифры d, стоящей в 1-й позиции, определяется функцией Q(d.1) = W(1)*DEC(d), где DEC(d) - значение цифры d, рассматриваемой как самостоятельное число; W(1)-вес 1-го разряда.
Система весов W(1), где 1 принимает значение из множества разрядов в записи числа, может быть задана таблицей или в виде формул. Весомозначная система называется естественной, если вес 1-го разряда выражается формулой w(1) = N , где N - основание, равное числу цифр в системе счисления.
при ручном счете используется естественная система с основанием N = 10, т.е. десятичная система.
В вычислительной технике широко используются также следующие естественные системы счисления: двоичная (N = 2),
восьмеричная (N = 8) и шестнадцатеричная (N = 16).
Для представления чисел и другой информации внутри цифровых машин наибольшее распространение получил двоичный алфавит
А = [0,1], который лучше других отвечает требованиям простоты и надежности технического воплощения.
Преимущество двоичной системы счисления над системами с основанием N>2 можно обосновать исходя из условия минимизации сложности представления числа.
Дискретные значения цифр в ЭВМ представляются непрерывными значениями напряжения или тока, а определение конкретного значения цифры осуществляется за счет сравнения конкретного значения этого непрерывного параметра с эталонным уровнем (пороговым значением) . Для представления одной цифры в системе с основанием N требуется N-1 эталонных уровней. Величину N-1 примем за сложность представления цифры в системе с основанием N, n-разрядное число в системе счисления с основанием N позволяет закодировать Nn различных комбинаций, или log2(Nn)= n*log2N бит информации.
Сложность n-разрядного числа в системе с основанием N равна (N-1)*n, а сложность представления 1 бита информации q = (N-1)*n/(n*log2N) = (N-1)/log2N.
Расчет значений q для различных N
N . . . 2 3 4 5 6 7 8 9 10
q . . . 1 1,26 1,5 1,72 1,93 1,14 2,33 2,52 2,71
показывает, что двоичная система дает наименьшую сложность.
Значение (n+1) - разрядного числа X =d[n]d[n-1]...d[1]d[0] в естественной системе с основанием 8 равно
DEC(X) = Q(d[n],n) + Q(d[n-1), n-1)+... +Q(d[1], 1)+Q(d[0],0). (6)
Например, значение двоичного числа 11010b (здесь b=binary показывает, что речь идет именно о двоичном числе ) равно
DEC(11010b) = 24*1 + 23*1 + 22*0 +21*1 + 20*0 =
= 16 + 8 + 0 + 2 + 0 = 26.
Ввиду особой важности двоичной системы нужно знать веса разрядов в этой системе:
20 = 1, 21 = 2, 22 = 4, 23 =8, 24 = 16,... ,210 = 1024 = K (kilo)
211 = 2K, 212 = 4K,..., 220 = M (mega), 221 = 2M и т.д.
Восьмеричный алфавит А = {0,1, 2,3,4,5,6,7} и шестнадцатеричный А ={0,1,2,3,4,5,6,7,8,9,А,В,С,D,Е,F} Где DEC(A) = 10, DEC(В) =11, DEC(C)=12, DEC(D) = 13, DEC(E) = 14, DEC(F) = 15, ИСПОЛЬЗУЮТСЯ ДЛЯ представления многоразрядных двоичных слов, характеризующих внутреннее состояние регистров и других ячеек нанята вычислительной машины, поскольку, с одной стороны, непосредственное восприятие таких слов неудобно для человека, а с другой - перевод из двоичной в восьмеричную или шестнадцатеричную систему, как будет показано выше, не требует выполнения арифметических операций.
Примеры восьмеричных чисел (о = octuple) : 173o и 1000о, причем
DEC(173о) =82*1 + 81*7 +81*7 + 80*3 = 6» * 56 + 3 = 123;
DEC(1000о) =83*1 = 512.
Примера шестнадцатеричных чисел: 2F4b, 173h, причем DEC(2F4h} =162*2 + 161*15 + 160*4 = 512 + 240 + 4 = 756, DEC(173h) =162*1 + 161*7 + 160*3 = 256 + 112 +3 = 371.
В табл. 15 приведены примеры записи чисел в системах с разным
основанием.
До сих пор мы рассматривали только целые числа. при записи двоичных, восьмеричных и шестнадцатеричных дробей разряды справа от запятой получают нумерацию -1, -2, -3,... Например, двоичное число 0,101b имеет десятичный эквивалент
DEC(0,101b) = 2-1*1 + 2-2*0 + 2-3*1 = 0,5 + 0 + 0,125 = 0,625.
Другой пример, DEC(0,F5h) = 16-1*15 + 16-2*5 = 245/256.
Перевод чисел из естественной системы с основанием N1 в сиcтему с основанием N2 (N1-->N2).
Перевод N1-->N2 на основе N2.
Формула ( б ) , приведенная выше, может использоваться для перехода от одной естественной системы с основанием N1 к системе с основанием N2, если в правой части этой формулы все действия выполнять в системе с основанием N2.
Например, перевод десятичного числа 12d в двоичную систему счисления ВIN (12d) = 10100 * 1 + 10100 * 10 = 1010 * 10 =1100. Выполнять действия в системе с основанием N2 не всегда удобно.
Таблица 15
Основание системы счисления |
|||
10 |
2 |
8 |
15 |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 20 30 40 50 100 1000 10000 100000 |
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10100 11110 101000 110010 1100100 1111101000 10011100010000 11000011010100000 |
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 24 36 50 62 144 1750 23420 303240 |
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 14 1E 28 32 64 3E8 2710 186A0 |
Перевод N1 -->N2 на основе N1
Число X делим на N2 записываем частное р[1] и остаток r[1]
затем p[1] делим на N2 и получаем частное p[2] и остаток r[2] ,
p[2] делим на N2 и получаем частное p[3] и остаток r[3] и т. д.
до тех пор, пока не получим р[n] = 0 и r[n].
Остатки, выписанные в обратном порядке r[n] r[n-1] … r[1], заменяем цифрами системы с основанием N2.
Пример. Перевести десятичное число 55d в двоичную систему счисления.
Р
ешение:
55
54 27
1 26 13
1 12 6
1 6 3
0 2 1
1 0 0
1
Ответ: BIN(55d) = 110111
Для перевода дроби X из системы с основанием N1 в систему с основанием N2 исходное значение X умножаем на N2, выписываем целую и дробную части произведения: e[1] и t[1] соответственно.
Затем t[1] умножаем на N2 и получаем e[2] и t[2]; t[3] умножаем на N2 и получаем e[4] и t[4] и т.д. до тех пор, пока не получим t[1]=0 или необходимое число цифр после запятой. Выписываем e[1] e[2] e[3] … как цифры числа X в системе с основанием N2
Пример: Перевести 0,75d в двоичную систему.
Решение: 0,75
* 2
------------
1,50
* 2
------------
1,0
Ответ: BIN(0,75d) = 0,11
Двоично–кодированные системы счисления
Рассмотрим естественные двоично-кодированные системы счисления, а именно системы с основанием N кратным степени 2, т.е. при N=2k , где k = 2,3,4,… При k=3 имеем восьмеричную систему счисления, а при k=4 – шестнадцатеричную. Перевод чисел из двоично-кодированной системы в другую не требует выполнения сложных операций. Возьмём двоичное число 1100110110111111b
Для его перевода в восьмеричную систему разобьём множество цифр числа на группы по три разряда (триады), начиная с младших разрядов, и заменим каждую триаду соответствующей восьмеричной цифрой:
001 100 110 110 111 111
1 4 6 6 7 7
Получили восьмеричное число 146677, которое имеет тот же количественный эквивалент, что и заданное двоичное число.
Для перевода двоичного числа в шестнадцатеричную систему счисления разбиваем множество цифр числа на группы по четыре разряда (тетрады) и каждую тетраду заменяем соответствующей шестнадцатеричной цифрой 1100 1101 1011 1111
C D B F
Получаем шестнадцатеричную число CDBFh, которое имеет тот же количественный эквивалент, что и заданное двоичное число.
Дробная часть числа переводится аналогичным образом, но направо (начиная от запятой).
Обратный перевод чисел из восьмеричной системы в двоичную заключается в замене каждой восьмеричной цифры соответствующей триадой. Аналогично осуществляется перевод шестнадцатеричных чисел в двоичные.
4. Выполнение операции в автоматах и микропрограммирование