
Inform
.pdf
21
Пример 5. При Р=2, n=10 и m=6 диапазон чисел простирается примерно от 10-19 до 1019. (Сравните примером 2.3).
Системы счисления, используемые при работе с ЭВМ.
В ВТ применяют позиционные СС с недесятичным основанием: двоичную, восьмеричную, шестнадцатеричную и др. Для обозначения используемой СС числа заключают в скобки и индексом указывают основание СС:
(15)10 ,(1011)2 ,(735)8 ,(1EA9F)16 .
Иногда скобки опускают и оставляют только индекс:
1510 ,10112 ,7358 ,1EA9F16 .
Есть еще один способ обозначения СС: при помощи латинских букв добавляемых после числа. Например,
15D; 1011 В; 735Q; 1EA9FH.
Двоичная система счисления.
Основание Р=2. Алфавит включает две двоичные цифры: 0, 1. Любое число
C= Cn Cn-1 …C1 C0 C-1 C-m
есть сумма степеней числа Р=2,
C= Cn 2n +Cn-1 2n-1 +…+C1 21 +C0 20 +C-1 2-1 +…+C-m 2-m (1.1) Пример 6. 101011,112 =1 25 + 0 24 + 1 23 + 0 22 +1 21 + 1 20 +1 2-1 + 1 2-2 =
= 32+8+2+1+0,5+0,25=43,7510.
Веса разрядов в двоичной системе счисления равны 1, 4, 8,16,... влево от запятой и
0,5; 0,25; 0,125; 0,625;... вправо от запятой.
Шестнадцатеричная и восьмеричная СС используются при составлении программ на языке машинных кодов для более короткой и удобной записи двоичных кодов — команд, данных, адресов и операндов.
Для изображения цифр, больших 9, в шестнадцатеричной системе счисления применяются латинские буквы A, B, C, D, E, F. Изображения первых шестнадцати чисел в десятичной, двоичной и шестнадцатеричной системах счисления приведены в таблице 1.
Двоично-десятичная система счисления получила большое распространение в современных ЭВМ ввиду легкости перевода в десятичную систему и обратно. Она используется там, где основное внимание уделяется не простоте технического построения машины, а удобству работы пользователя. В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами.
Пример 7. Десятичное число 9703 в двоично-десятичной системе выглядит так: 1001 0111 0000 0011.
Таблица 1
Системы счисления
Десятичная |
Двоичная |
Восьмеричная |
Шестнадцатеричная |
о |
о |
0 |
о |
1 |
1 |
1 |
1 |
2 |
10 |
2 |
2 |
3 |
11 |
3 |
3 |
4 |
100 |
4 |
4 |
5 |
101 |
5 |
5 |
6 |
110 |
6 |
6 |
7 |
111 |
7 |
7 |
8 |
1000 |
10 |
8 |
9 |
1001 |
11 |
9 |
10 |
1010 |
12 |
А |

22
11 |
1011 |
13 |
В |
12 |
1100 |
14 |
C |
13 |
1101 |
15 |
D |
14 |
1110 |
16 |
Е |
15 |
1111 |
17 |
F |
16 |
10000 |
20 |
10 |
17 |
10001 |
21 |
11 |
Двоичная арифметика
Преимущество двоичной системы счисления над десятичной с точки зрения ЦВМ состоит в следующем:
-требуются элементы с двумя устойчивыми состояниями;
-существенно упрощаются арифметические операции;
-оборудования требуется в 1,5 раза меньше;
-позволяет применить аппарат математической логики для анализа и синтеза схем. Недостатки двоичной системы счисления состоят в следующем:
-большая длина записи чисел;
-при вводе и выводе информации требуется перевод в десятичную систему счисления.
Рассмотрим, как выполняются основные действия в двоичной арифметике.
Сложение |
Вычитание |
Умножение Деление |
|
0+0=0 |
0-0=0 |
0х0=0 |
0:1=0 |
0+1=1 |
1-0=1 |
0х1=0 |
1:1=1 |
1+0=1 |
1-1=0 |
1х0=0 |
|
1+1=10 |
10-1=1 |
1х1=1 |
|
Правила арифметики во всех позиционных системах счисления одинаковы, т.е. сложение, умножение и вычитание начинают с младших разрядов, деление - со старших.
При сложении единица переноса складывается с цифрами соседнего старшего разряда. При вычитании единица заёма старшего разряда дает две единицы в младшем соседнем разряде.
Пример 8.
1) |
110111,01 |
55,25 |
2) |
11011,10 |
27,5 |
|
+ 10011,10 |
+19,5 |
|
- 1101,01 |
-13,25 |
|
1001010,11 |
74,75 |
|
1110,01 |
14,25 |
Умножение двоичных чисел аналогично умножению десятичных, но т.к. умножаем только на 0 и 1, то умножение сводится к операции сдвига и сложения. Положение точки, отделяющей целую часть от дробной части, определяется так же, как и при умножении десятичных чисел.
Пример 9.
1011,1 |
|
|
х 101,01 |
|
|
10111 |
|
|
10111 |
- сдвинутое на 2 разряда влево множимое |
|
10111 |
|
- сдвинутое на 4 разряда влево множимое |
111100,011 |
|
|

23
Перевод чисел из одной системы счисления в другую
Задача перевода из одной системы счисления в другую часто встречается при программировании и особенно часто — при программировании на языке Ассемблера. Например, при определении адреса ячейки памяти, для получения двоичного или шестнадцатеричного эквивалента десятичного числа. Отдельные стандартные процедуры языков программирования Паскаль, Бейсик, HTML и Си требуют задания параметров в шестнадцатеричной СС. Отыскать неисправность в ЭВМ практически невозможно без представлений о двоичной СС.
Сначала рассмотрим перевод из двоичной системы счисления в шестнадцатеричную и наоборот. Это наиболее просто в связи с тем, что 16=24 .
Правило 1. Для перевода шестнадцатеричного числа в двоичное надо каждую цифру заменить четырехразрядным двоичным числом. Незначащие нули отбросить.
Пример 10.
305,416 =0011 0000 0101,01002 =1100000101,012
Ещё пример: Перевести число 7D2.ЕН из шестнадцатеричной СС в двоичную СС.
Решение
Переводимое число Результат
Переводимое |
|
число |
Результат |
|
1444442444443 |
144424443 |
|||
(7 |
D |
2. |
E |
)16 =(11111010010.111)2 |
↓ |
↓ |
↓ |
↓ |
|
0111 |
1101 |
0010 |
1110 |
|
↑ |
|
|
↑ |
Отмеченные крайние нули следует отбросить.
Правило 2. Для перевода числа из двоичной системы счисления в шестнадцатеричную надо число разбить на четверки влево и вправо от запятой. Крайние группы, если необходимо дополнить нулями. Затем каждую четверку двоичных цифр заменить соответствующей шестнадцатеричной цифрой.
Пример 11.
1010111,11011012 =0101 0111,1101 10102 =57,DA16
Ещё пример: перевести число 10111110001.001В из двоичной СС в шестнадцатеричную СС. Решение.
Рассмотрим общие правила перевода чисел из одной системы счисления в другую. Эти правила зависят от того, в какой системе счисления осуществляются арифметические операции, связанные с преобразованием чисел, - в той, в какой представлено исходное число, или в той, в которую оно переводится.
Правило 3.
Задано число С, представленное в системе счисления с основанием S:
C = Cn Cn-1 …C1 C0 C-1 C-m
Нужно перевести его в h-систему, выполняя действия в новой системе счисления (в h-системе).

24
Для этого нужно представить его в виде суммы степеней S : C= Cn Sn +Cn-1 Sn-1 +…+C1 S1 +C0 S0 +C-1 S-1 +…+C-m S-m,
где основание S, коэффициенты c и номера разрядов i выражены в новой h-системе.
Все действия надо выполнять в h-системе.
Пример 12.
1) Перевести 2Е5,А16 в десятичную систему счисления: 2Е5,А16 =2 162 +14 161 +5 160 +10 16-1 =741,62510
2)Перевести 5210 в двоичную систему счисления: 5210=101 10101 +10 10100 =110010+10=1101002
3)Перевести 1101,101 в десятичную систему счисления: 1101,1012 = 1 23 +1 22 +0 21 +1 20 +1 2-1 +0 2-2+1 2-3 =13,62510
Этот способ удобен при S<h и особенно для ручного перевода в десятичную систему
счисления.
Рассмотрим перевод целого числа С (2.2) из S-системы в h-систему в арифметике S- системы счисления.
Правило 4. Для перевода целого числа из S-системы в h-систему счисления в арифметике S-системы нужно последовательно делить это число и получающиеся частные на h до тех пор, пока частное не станет меньше h. Старшей цифрой в новой записи числа будет последнее частное, а следующие за ней цифры дают остатки, вписанные в последовательности, обратной их получению. Все вычисления производятся в старой S-
системе. (При S<h прежде, чем записать число, надо получившиеся остатки переписать в цифры h-системы).
Пример 13.
1) Перевести число 70 в двоичную систему счисления.
70 2
0 35 2
1 17 2
1 8 2 |
|
0 4 2 |
|
0 2 2 |
7010 =10001102 |
01
2)Перевести 10000000 в десятичную систему счисления
10000000 1010
- 1010 |
1100 |
1010 |
1100 |
- 1010 |
1 |
- 1010 |
10=210 |
|
1000=810 |
100000002 =12810 |
При переводе наиболее частой ошибкой является неверная запись результата. Запись двоичного числа следует начинать со старшего значащего разряда (СЗР), а заканчивать записью младшего значащего разряда (МЗР). Следует помнить, что при делении первым получается значение МЗР.
В ЭВМ с целью упрощения арифметических операций применяют специальные коды для представления чисел. При помощи этих кодов:
•автоматически определяется знак результата;
•операция вычитания сводится к арифметическому сложению кодов чисел;
•упрощается операционная часть ЭВМ.
25
Прямой , обратный и дополнительный коды чисел
В ЭВМ используется прямой, обратный и дополнительный коды чисел. Знак “+” кодируется нулем (0), “-” - единицей (1), которые записываются в дополнительном старшем разряде - знаковом разряде.
1. Прямой двоичный код Рпр(х) — это такое представление двоичного числа х, при котором знак «плюс» кодируется нулем в старшем разряде числа, а знак «минус» — единицей. При этом старший разряд называется знаковым.
Сложение в прямом коде не вызывает затруднений, когда у слагаемых одинаковые знаки: сложить модули и сумме присвоить знак слагаемых. При вычитании чисел в прямом коде нужно сначала определить больший модуль, от него отнять меньший и результату присвоить знак большего модуля.
2. Обратный код Робр(х) получается из прямого кода по следующему правилу:
|
|
|
' |
Pпр (x) |
при x ≥ 0 |
||
|
0 |
|
|||||
P |
(x) = |
' |
|
|
|
|
|
|
|
|
|
||||
обр |
|
|
(x) |
при x ≤ 0 |
|||
|
1 P |
||||||
|
|
|
|
пр |
|
|
|
Из приведенного выражения видно, что обратный код для положительных чисел совпадает с прямым кодом. Чтобы представить отрицательное двоичное число в обратном коде нужно оставить в знаковом разряде 1, во всех значащих разрядах заменить 1 на 0, а 0 на 1. Такая операция называется инвертированием и обозначается горизонтальной чертой над инвертируемым выражением.
3. Дополнительный код Рдоп(х) образуется следующим образом:
|
|
0 |
' |
Pпр (x) |
при x ≥ 0 |
||
|
|
|
|||||
P |
(x) = |
' |
|
|
|
|
|
|
|
|
|
|
|||
доп |
|
|
(x) +1 |
при x ≤ 0 |
|||
|
1 P |
||||||
|
|
|
пр |
|
|
|
|
Из выражения видно, что дополнительный код положительного числа совпадает с прямым кодом, а для отрицательного числа получается инверсией всех значащих разрядов и добавлением единицы к младшему разряду результата.
Дополнительный код может быть получен из обратного кода путём прибавления 1 к младшему разряду обратного кода (естественно, с учётом переносов между разрядами).
Итак:
Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде.
Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение.
Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа.
Пример 14: Получить обратный код для числа х=-13D.
Решение.
Pпр(x) = (1'1101)2 −прямой код
Pобр(x) = (1'0010)2 −обратный код
Рдоп(x) = (1'0011)2 −дополнительный код

26
Нетрудно доказать, что (по модулю):
•Обратный код от обратного кода дает прямой код числа.
•Дополнительный код от дополнительного кода дает прямой код числа.
Сложение чисел в прямом и дополнительном коде
Можно строго математически доказать следующие правила.
Правило 1. При сложении дополнительных кодов чисел знаковые разряды складываются аналогично остальным, перенос из знакового разряда теряется, результат получается в дополнительном коде.
Правило 2. При сложении чисел в обратном коде знаковые разряды складываются аналогично остальным, перенос из знакового разряда прибавляется к младшему разряду результата (так называемый циклический перенос), результат получается в обратном коде.
Таким образом, применение обратного и дополнительного кода упрощает алгебраическое сложение. Сложение чисел с разными знаками заменяется сложением их соответствующих кодов, знак при этом получается автоматически.
Пример 14.
1) |
X=0,0101, |
Y=-0,0011 |
|
Xдоп=0,0101, Yдоп=1,1101 |
|
|
Xдоп + Yдоп= 0,0101 |
|
|
+1,1101 |
|
3) |
A=+0,10111, |
B=-0,01010 |
|
Aобр =0,10111, |
Bобр=1,10101 |
Aобр + Bобр= 0,10111 +1,10101
10,01100
1 (циклический
Пример 15. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел X1 = 7D и X2 = -3D.
Решение.
Необходимо найти сумму: у = X1 +X2.
Учитывая, что X1 > 0, это число нужно представить в прямом коде, а так как X2< 0, то X2 нужно перевести в дополнительный код.
Так как результат положителен (в знаковом разряде Р(у) - 0), значит, он представлен в прямом коде. После перевода двоичного числа в десятичную СС получим ответ: у = +4D.
Пример 16. Выполнить алгебраическое сложение с использованием дополнительного кода для чисел X1= 8D и X2 = -13D.
Необходимо найти сумму: у = X1 +X2.
Число X1 нужно представить в прямом коде, а X2 — в дополнительном коде.

27
В знаковом разряде стоит единица и, значит, результат получен в дополнительном коде. Для перехода от дополнительного кода
Рдоп(y)=1'1011B
к прямому коду Рпр(у) необходимо выполнить следующие преобразования:
Робр(у) = Рдоп(у) - 1 = 1'1011B - 1 = 1'1010B,
Рпр(у) = Pобр ( y) =1'1010B =1'0101B
Переходя от двоичной СС к десятичной СС, получим ответ: y=-5D.
28
Варианты представления информации в ПК
Как уже упоминалось, вся информация (данные) представлена в виде двоичных кодов. Для удобства работы введены следующие термины, обозначающие совокупности двоичных разрядов (табл.2.2). Эти единицы обычно используются в качестве единиц измерения объемов информации, хранимой или обрабатываемой в ЭВМ.
Таблица 2.2. Двоичные совокупности
Количество |
1 |
8 |
16 |
8*1024 |
8*10242 |
8*10243 |
8*10244 |
двоичных |
|||||||
разрядов в |
|
|
|
|
|
|
|
группе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Наименован |
Б |
Б |
Пара- |
Килобайт |
Мегабайт |
Гигабайт |
Терабайт |
ие единицы |
и |
а |
граф |
(Кбайт) |
(Мбайт) |
(Гбайт) |
(Тбайт) |
измерения |
т |
й |
|
|
|
|
|
|
|
т |
|
|
|
|
|
|
|
|
|
|
|
|
|
Восемь последовательных битов составляют байт. Как правило, код символа хранится в одном байте. Такие кодировки называются однобайтными. В одном байте можно закодировать значение одного символа из 256 возможных (28=256). Примером такой кодировки может служить код ASCII (American Code for Information Interchange –
американский код обмена информацией). В настоящее время все большее применение приобретает двухбайтная кодировка Unicode, в ней коды символов могут иметь значение от 0 до 65535. В этой кодировке имеются коды для практически всех применяемых символов (букв алфавитов разных языков, математических , декоративных символов и т.д.)
Последовательность нескольких битов или байтов часто называют полем данных. Биты в числе (в слове, в поле и т.п.) нумеруются справа налево, начиная с 0-го разряда.
В ПК могут обрабатываться поля постоянной и переменной длины.
Поля постоянной длины:
•слово – 2 байта;
•полуслово – 1 байт;
•двойное слово – 4байта;
•расширенное слово –8байт.
Числа с фиксированной запятой чаще всего имеют формат слова и полуслова, числа с плавающей точкой – формат двойного и расширенного слова.
Поля переменной длины могут иметь любой размер от 0 до 256 байт, но обязательно равный целому числу байтов.
Пример 2.15.
Структурно запись числа –19310=-110000012 в разрядной сетке ПК выглядит следующим образом.
Число с фиксированной запятой формата слово со знаком.
|
Знак |
Абсолютная величина числа |
|
|
|
|
|
|
|
|
|
||||||
N раз- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
|
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
ряда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

29
Информационно-логические основы построения ЭВМ
Основы алгебры логики
Для описания логики функционирования аппаратных и программных средств ЭВМ используется алгебра логики или, как ее часто называют, булева алгебра. Основоположником этого раздела математики был Дж.Буль.
Булева алгебра оперирует с логическими переменными, которые могут принимать только два значения: истина или ложь, обозначаемые соответственно 1 и 0.
Как ранее отмечалось, основной системой счисления ЭВМ является двоичная СС, в которой также используются только две цифры: 1 и 0. Таким образом, одни и те же цифровые устройства ЭВМ могут применяться для обработки как числовой информации в двоичной СС, так и логических переменных. Это обуславливает универсальность (однотипность) схемной реализации процесса обработки информации в ЭВМ.
Алгебра логики – это раздел математической логики, значения всех элементов которой определены в двухэлементном множестве: 0 или 1. Алгебра логики оперирует с логическими высказываниями.
Высказывание – это любое предложение, в отношении которого имеет смысл утверждение о его истинности или ложности. При этом считается, что высказывание удовлетворяет закону исключённого третьего, т.е. каждое высказывание или истинно, или ложно и не может быть одновременно и истинным, и ложным.
В алгебре логики все высказывания обозначают буквами: a, b, c и т.д. Простейшими операциями в алгебре логики являются операции логического
сложения (иначе, операция ИЛИ, операция дизъюнкции) и логического умножения
(иначе операция И, операция конъюнкции). Для обозначения операции логического сложения используют символы + или , а логического умножения – символы * или .
В алгебре логики вводится ещё одна операция – операция отрицания (иначе НЕ, операция инверсии), обозначаемая чертой над элементом.
По определению: a + a =1; a a = 0; 0 =1; 1 = 0.
С помощью этих трех функций можно представить (аналитически выразить) любую сколь угодно сложную логическую функцию.
Функция в алгебре логики – это алгебраическое выражение, содержащее элементы алгебры логики a, b, c …, связанные между собой операциями, определенными в этой алгебре.
Например, f (a,b,c) = a + a b c + a + c .
Правила выполнения операций в алгебре логики определяются рядом аксиом, теорем и следствий.
Перечислим законы алгебры логики:
• сочетательный (или ассоциативный)
(a +b) +c = a +(b +c); (a b) c = a (b c);
• переместительный (или коммутативный) a +b =b +a;
a b =b a;
• распределительный (или дистрибутивный)
a (b +c) = a b +a c; a +b c = a b +a c;

30
• двойственности (или де Моргана) a +b = a b;
a b = a +b;
• двойного отрицания a = a
• поглощения
a + a +b = a; a (a +b) = a
• склеивания a b + a b = a;
(a +b) (a +b) = a.
Программное управление ЭВМ
Структура и виды команд в ЭВМ
Решение задач на ЭВМ реализуется программным способом, т.е. путем выполнения последовательно во времени отдельных операций над информацией, предусмотренной алгоритмом решения задачи.
Алгоритм – это точно определенная последовательность действий, которые необходимо выполнить над исходной информацией, чтобы получить решение задачи. Алгоритм решения задачи, заданный в виде последовательности команд на языке вычислительной машины (в кодах машины), называется машинной программой.
Команда машинной программы (иначе, машинная команда) – это элементарная инструкция машине, выполняемая ею автоматически без каких-либо дополнительных указаний и пояснений.
Машинная команда состоит из двух частей: операционной и адресной. Операционная часть команды – это группа разрядов в команде, предназначенная для
представления кода операции машины.
Адресная часть команды - это группа разрядов в команде, в которой записываются коды адреса (адресов) ячеек памяти машины или иных объектов, задействованных при выполнении команды.
По количеству адресов, записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные.
Типовая структура трехадресной команды:
КОП |
a1 |
a2 |
a3 |
|
|
|
|
КОП – код операции;
a1 и a2 – адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции;
a3 - адрес ячейки(регистра), куда следует поместить число, полученное в результате выполнения операции.
В двухадресной команде a1 и a2 выполняют ту же функцию, что в трехадресной команде. По завершении операции результат помещается в а1.