книги из ГПНТБ / Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей
.pdfВычислим у для значения х = 20; |
|
|
||
5-20 + 10 |
ПО |
|
||
У = |
|
= 55. |
|
|
Для машины |
0,50,2 + 0,010 |
|
||
Ум = ам• -*М~Ь 5м |
: 0,55. |
|||
|
0.2 |
|||
см |
|
|
В машинах с фиксированной запятой ограничен диапазон чисел, с которыми оперирует машина. Если разрядная сетка содержит 16 разрядов (рис. 2—2), то этот диапазон заклю чен в пределах:
0 ,0 0 ...0 ,1 < |іѴ |< 0 ,1 1 ...1 1
или 2 -15< | ^ | < 1 —2~1Б,
или 2_16<|УѴ| < 1.
Если при выполнении операций на машине с фиксирован ной запятой получим результат меньше минимально возмож ного, то это число рассматривается как машинный нуль. Если результат получился больше максимально возможного (боль ше или равен 1), то происходит переполнение разрядной сетки и останов машины.
Для машин с фиксированной запятой требуется значи тельно меньше оборудования, чем для машин с плавающей запятой, поэтому современные мини и малые ЭВМ конструи руются с фиксированной запятой.
Представление чисел с плавающей запятой в полулогарифмической форме
Числа в машинах с плавающей запятой |
представляются ■ |
в виде |
|
N = S P -M, |
(2 -4) |
где: |
|
S —"основание системы счисления, |
|
Р — порядок числа N, |
|
М — мантисса числа N. |
|
Если —— < М < 1 , то число N называется |
нормализован- |
iS |
|
ным. Условия нормализации: |
|
1) мантисса числа N по модулю должна быть меньше |
|
единицы; |
|
2) первая цифра после запятой должна |
быть значимой, |
т. е. не быть нулем. |
|
100
Полулогарифмическую форму с выполненными условиями нормализации называют нормальной полулогарифмической формой.
Пример 1. Представить десятичные числа 13,5 и 135 в нормальной полулогарифмической форме:
JV I ='13‘ |
5 |
или |
N f = |
0,135 • ІО2; |
tf3 = 1 3 |
5 |
или |
#2 = |
0,135 • Ю3. |
В двоичной системе счисления формула (2—4) имеет вид:
N = 2 P - M , |
(2—5) |
где 2~l < M < 1.
Разрядная сетка машины с плавающей запятой
Рассмотрим 45-разрядную схему (рис. 2—3) машины с плавающей залитой.
С 1 по 36 разряды— двоичные разряды для представле ния мантиссы числа.
Ѳ Ѳ Ѳ Г * |
Чі ЧС 3J щ |
X 5S 54 |
3 2 І |
|
|
|||||
|
|
V . |
|
1 — |
J |
|
Г |
|
|
|
|
|
LЗнакпорядокпорядка |
пантисса |
|
|
|
||||
|
|
Знак |
числа |
|
|
|
|
|
||
|
|
признак числа |
|
|
|
|
|
|||
Рис. 2—3. 45-разрядная |
сетка |
машины |
с плавающей |
|
|
|||||
|
|
|
|
запятой |
|
|
|
|
|
|
С 37 по 42—(разряды — двоичные разряды представления |
||||||||||
порядка числа. 43 разряд кодирует знак порядка. |
Отсюда |
|||||||||
диапазон представимых чисел: |
|
|
|
|
|
|||||
|
|
|
2_84 < \ N \ < |
2+63 |
|
|
|
|
||
|
или |
10-19< |W |< |
10+19. |
|
|
|
|
|||
44 разряд кодирует знак числа. |
|
используемый |
для |
|||||||
45 разряд кодирует признак числа, |
||||||||||
разграничения групп чисел. |
|
|
|
|
число, |
|||||
Если в результате выполнения операции получено |
||||||||||
большее |
максмально |
возможного |
(>-2+вз), то происходит |
|||||||
останов |
машины по |
переполнениюразрядной |
сетки. |
Если |
||||||
полученный |
результат |
меньше |
минимально |
возможного |
||||||
(< 2“64), то |
получается |
машинный |
нуль- (т. е.. числа, |
меньше |
||||||
2-64 воспринимаются машиной как нуль). |
|
|
больший |
|||||||
В машинах с плавающей запятой значительно |
диапазон чисел, с которыми может работать машина, нежели
101
в машинах с фиксированной занятой при том же числе раз рядов.
Точность представления больших и малых чисел одина кова. Числа представляются с одинаковой относительной по
грешностью. |
и средние ЦВМ |
конструируются |
с плавающей |
|
Большие |
||||
запятой. Число разрядов обычно кратно 8. 8 бит * |
называют |
|||
ся байтом. Например, слово |
машины IBM |
360 |
содержит |
|
32 разряда |
(4 байта), двойное |
слово — 64 разряда. |
|
§1—8. Представление отрицательных чисел в машине
Знаки ± кодируются с помощью 0 и 1.0 соответствует зна ку +, 1—'знаку— (или наоборот). .Операции над знаками сводятся, таким образом, к операциям над числами 0 и 1.
При умножении (делении) двух чисел знак произведения (частного) будет положительным, если оба сомножителя (делимое и делитель) положительны или отрицательны, и отрицательным, если сомножители (делимое и делитель) име ют разные знаки.
При принятом нами |
представлении операции |
над |
знаками сводятся |
|||||||||
к операциям сложения знаков двух чисел: |
|
|
|
|
|
|||||||
Умножение |
|
|
|
|
|
|
|
|
|
Знак |
результата |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
(деление) |
1. Оба |
числа |
|
положи |
0 + 0 |
= |
Y |
|
||||
|
0 Результ. полож. |
|||||||||||
|
|
тельны |
(знак |
первого |
|
|
|
|
|
|||
|
|
числа «0», знак |
вто |
|
|
|
|
|
||||
|
|
рого числа |
«0»). |
|
|
|
Знак результата |
|||||
|
|
|
|
|
|
|
|
|
|
|
||
|
2, Первое |
число |
отри- |
t + |
0 = l' |
Результ, отриц. |
||||||
|
j■ |
цательно (знак |
пер |
|
|
|
|
|
||||
|
|
вого |
числа |
«1», знак |
|
|
|
|
|
|||
|
|
второго |
числа |
«0»), |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
Знак' результата |
|
|
3. |
Второе число отрица |
0 + 1 |
= |
1 |
Результ. отриц. |
||||||
|
|
тельно |
(знак |
перво |
|
|
|
|
|
|||
|
|
го числа |
«0», |
знак |
|
|
|
|
|
|||
|
|
второго числа «1»), |
|
|
|
Знак результата |
||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
4. |
Оба |
числа |
отрица |
1+ |
|
|
1 |
|
|||
|
1, = о Результ, полож. |
|||||||||||
|
|
тельны |
(знак первого |
|
|
|
|
|
||||
|
|
числа «1», знак вто |
|
|
|
|
|
|||||
|
|
рого |
числа |
«1»). |
|
|
|
|
|
|||
Полученную |
в четвертом |
случае единицу переноса не учитывают. |
||||||||||
* Бит — это единица информации, т. е. 1 или 0. |
|
|
|
|
102
§ 1— 9. С п о с о б ы |
к о д и р о в ан и я |
чисел с уч ето м |
зн а к а |
|
|
Будем |
рассматривать способы |
кодирования |
только |
для |
|
чисел, по |
абсолютной |
величине меньших единицы, так |
как |
любое другое число можно представить, согласно формуле (2—5), в виде мантиссы (по абсолютной величине, меньшей
единицы) и целой степени двойки. |
|
числа в прямом коде |
|||||
П р я м о й |
код. |
При кодировании |
|||||
его цифровая |
часть |
записывается |
без |
изменений, а |
знаку |
||
числа приписывается 0 (если число положительное) |
или 1 |
||||||
(если число отрицательное). О и 1 |
записываются |
в знаковом |
|||||
разряде разрядной сетки на месте нуля целых. |
|
|
|||||
Пример 1. N t — 0,101, Ni = — 0,101. |
Закодировать эти |
числа |
с уче |
||||
том знака в прямом коде. |
|
|
|
|
|
||
|
|
Nt= ОДОІ1 |
[/Ѵ,]пр= |
ОДШ; |
|
|
|
|
|
iVs=-0;101 |
[tf*]np=l,mi; |
|
|
]іѴ]пр означает, что число N представлено в прямом коде.
Обратный [N]o6p и дополнительный|УѴ]допкоды вводятся для представления отрицательных чисел в машине, что позволя ет заменить операцию вычитания операцией сложения и та ким образом существенно упростить конструкцию арифмети ческого устройства. Положительные числа в прямом, обрат ном и дополнительном кодах совпадают (по определению). Для представления отрицательного числа в обратном коде ■необходимо в разряде знаков поставить 1, все нули этого кода заменить на единицы, а единицы — на нули. Чтобы полу чить дополнительный код отрицательного числа, нужно к младшему разряду обратного кода этого числа прибавить единицу.
Пример 2. Представить числа Л', = 0,M ill и N2 = — 0,11111 в прямом, обратном и дополнительном кодах.
Щ ]п р = [ЛГ,]обр — [^і]доп = 0,111М;
[ЛГ2[пр = 1,11111; [Л^з]обр ^ 1,00000;
[ЛГ2]доп =' 1,00001.
Пример 3. Представить число — 12 в прямом, обратном и дополни тельном коде.
—112,0 = — Ш002 = — ОДіЮО.Ю100.
Таким образом:
1 |
|
II а с |
0 |
|
о |
|
|
О |
|||
[— И2]обр |
= |
0 |
100 |
||
1 |
? с |
II с |
0 |
S |
|
|
|
|
|
t |
t |
|
|
|
|
1 |
1 |
|
|
|
|
1 |
1 |
|
|
|
|
1 |
порядок |
|
|
|
|
знак порядка |
1і |
,1100 |
|
ООП |
li |
0100 |
ч t |
t |
1мантисса
'знак мантиссы
ЮЗ
Модифицированный обратный и дополнительный коды
В модифицированном |
обратном |
и дополнительном коде |
|
на изображение |
знака отводится два .разряда, а числа пере |
||
водятся по тем |
же іпріавилам, что и в простом обратном к |
||
дополнительном коде. |
|
|
|
Пример 4. N = — 0,1001; |
№ р = |
11,0110 |
№п = 11.0111
Ввычислительной машине арифметические операции над числами обычно выполняются в 'модифицированных кодах.
§1 —10. Арифметические действия над двоичными числами
Над двоичными числами производятся все четыре арифме
тических действия. Рассмотрим выполнение арифметических операций в машинах с фиксированной и плавающей запя той. При этом для упрощения ограничимся пятью цифровы ми разрядами.
Сложение и вычитание чисел с фиксированной запятой
Пример 1. Сложить числа 0,01000 и 0,01010
0,01000
+
0,01010
0,10010
Пример 2. Сложить числа 0,011110 и 0,001110.
0,01' Ы О
+
0,001110
0,10100
Если в результате сложения двух чисел результат превы шает единицу, то происходит переполнение разрядной сетки
(останов машины). |
|
производить |
в следующих |
||
В ы ч и т а н и е чисел следует |
|||||
случаях: |
операции |
«сложение» |
при разных |
знаках чисел; |
|
1) |
при |
||||
2) |
при |
операции |
«вычитание» при одинаковых знаках чи |
сел.
Вычитание заменяется сложением чисел. При этом отри цательное число представляется либо в обратном, либо в дополнительном коде. Если в результате сложения число получится в обратном или дополнительном коде, то в машине оно переводится в прямой код.
104
При сложении в обратном или дополнительном коде может возникнуть единица переноса из .знакового разряда. При сложении чисел в обратном «оде эту единицу переноса прибавляют к младшему .разряду числа, при сложении чисел в дополнительном коде возникшая единица переноса отбрасы вается.
Пример 3. Сложить числа /1 = 0,10010 и В = — 0,01010 в обратном и дополнительном модифицированных кодах.
№ р = 11-10101, |
] В ] “ 0П11,101110. |
При обычном вычитании получим: |
|
|
0,10010 |
|
|
|
0,01010 |
|
|
|
|
0,01000 |
|
При сложении |
При сложении |
|||
в обратном коде |
в дополнительном коде |
|||
|
0 0 ,1 0 0 1 0 |
“Ь |
0 0 ,1 0 0 1 0 |
|
|
+ |
|
111,10110 |
|
|
11,10101 |
|
||
|
100,00111 |
1 |
00,01000 |
|
|
+ |
|
t |
|
|
|
|
|
|
|
---------- -> 1 |
отбрасываем |
||
|
00,01000 |
|
|
|
Пример 4. |
Из |
А = 0,01010 |
вычесть число В = 0,10010. |
|
[-ß]"6p =11,01101 |
[— В]доп = 11,01110. |
|||
При обычном вычитании |
При сложном |
|||
|
|
|
в' обратном коде |
|
|
|
0,01010 |
00,01010 |
|
|
|
0,1.0010 |
+ |
|
|
|
ІіГ.ШЧШ |
||
|
- |
0,01000 |
11,10111 |
|
|
|
I |
|
|
[А/]пр =• 1,01.000. |
Переводим число 11,ЮПИ в |
|||
|
|
|
прямой код: |
11,01000. |
Вычитание в дополнительном коде
00,01010
+
11,01110
ИДИ000
Переводим число 11,1:1000 в прямой код. Для этого сначала число 11,11000 переводим в обратный код 11,00111, затем прибавляем единицу к младшему разряду этого кода. Получим 1І1Д1000.
105
Сложение и вычитание чисел с плавающей запятой
Последовательность выполнения операций сложения (вычитания):
1.Определение разности порядков.
2.Выравнивание порядков.
3.Сложение или вычитание мантисс чисел.
4.Нормализация результата.
5.Округление результата.
Пример 1. Найти сумму чисел А = О,MOL10101 и В = ОДЮ1.1011 и округлить ее до пяти двоичных'разрядов.
1.Определение разности порядков:
101 — 11 = 10.
2.Выравнивание порядков.
Мантиссу второго (меньшего) числа сдвигаем вправо на два разряда.' Тогда
В= 0,00110.10101.
3.Сложение мантисс чисел:
0,11010
+
0,001110
,1,00000
4.Нормализация результата.
Так как выход из нормализации произошел влево, сдвигаем число вправо на один разряд, соответственно увеличив порядок:
0,10000.10110.
Пример 2. Сложить ненормализованные числа А = 0,00001.10° и
В= 0,00011.40°.
1.Так как порядки чисел равны, то определение разности порядков и выравнивание порядков производить не нужно.
2.Сложение мантисс чисел:
0,00001
+
0,00011
0,00100.
3.Нормализация результата.
Для нормализации результата в данном случае нужно произвести сдвиг влево полученной суммы на два разряда. Получим
А + В = 0,10000.10-1°
Пример 3. Определить |
разность |
чисел |
А = 0,1101.ІО101 |
и |
В= 0,1100.10ой.
1.Выравнивание порядков: 101— 011 = 10. Следовательно,
В= О.ООіП.Ю101.
2.Вычитание мантисс чисел (в обратном коде): [-ß]Ö6p = 14,Ы00
106
00,1101
+ 1.1,1100
1 00,1ОШ
+
1
00,1010
3.Результат 00,1010.10101 получился нормализованным.
Умножение и деление
Умножение (деление) чисел производится в прямом коде. Знак произведения (частного) определяется .путем суммиро вания знаковых разрядов сомножителей (делимого и делите ля, § 1—8).
Умножение и деление чисел с фиксированной запятой
Порядок выполнения операции умножения:
1.Определение знака произведения.
2.Перемножение мантисс по обычным правилам ариф-
,метики и округление.
Пример I. Перемножить числа Л = 0,1101 и В —0,1011.
1. Определение знака произведения.
Знак первого числа 0 (число положительно).
Знак второго числа 0 |
(число положительно). |
0 + 0 = |
0 (знак произведения + ). |
2. Перемножение мантисс:
0,1101
+
0,1011
1101
1101
0000
+
1101
0,10001111
3. Округление результата до пяти двоичных разрядов:
0,10010.
Пример 2. Перемножить числа А = ОДіЮГи В = — 0,1011. [ß]np= 1,1011.
|
Знак |
первого числа 0. |
|
|
Знак |
второго числа 1. |
|
|
Знак произведения 0 + 1 = |
1. |
|
<• |
[Л .В ]Пр = 1,10010 (см. пример |
1). |
107
Порядок выполнения операции деления в машине
сфиксированной запятой
1.Определение знака частного.
2.Деление мантисс по обычным правилам арифметики (делимое должно быть меньше делителя, иначе произойдет
останов машины).
Пример I. Разделить А = 0,101 на В = — 0,111.
Знак первого числа 0. Знак второго числа 1. Знак частного 0 +! 1 = 1.
Так как при определении остатка операция вычитания заменяется операцией сложения в обратном или дополнительном коде, то в машине деление выполняется следующим образом:
(дополн. код |
|
0,1010 |
I |
0,111 |
числа ОШ) |
+ |
1001 |
|
0 .1011... |
|
|
|||
|
+ |
001100 |
|
|
|
111001 |
|
(дополн. код. числа 000111) |
|
|
|
|
||
|
+ |
0001010 . |
|
|
|
1111001 |
|
(дополн. код числа 0000МП) |
|
|
|
|
||
|
|
0000011 |
|
и т. д. |
|
|
|
|
Умножение и деление чисел с плавающей запятой
Порядок выполнения операции умножения:
1.Определение знака произведения.
2.Определение порядка произведения путем суммирова
ния порядков сомножителей.
3. Перемножение мантисс сомножителей (как в машинах
сфиксированной запятой).
4.Нормализация (если она необходима) и округление результата.
Порядок выполнения операции деления:
1.Определение знака частного.
2.Определение порядка частного как разности порядков делимого и делителя.
3."Деление мантисс по обычным правилам.
Пример 1. На |
машине с |
плавающей запятой перемножить числа |
А = 15,2 и В = 4,5. |
|
двоичную систему счисления, получим: |
Переводя числа А и В в |
1 5,25 = 1111,01
4,5 = 100,1
или в нормализованном виде
А= 0,1525-ІО2 = 0,111101 • ІО100
В= 0,45 - 10‘ = 0,1001 10011
.108
порядок произведения-равен 100+1011 = 111. Перемножение мантисс:
О.Ы'ПО 1
4*
0,100 1
1Н101
оооооо
+000000'
. _____ umоі
0,1000100101
Округляя результат с точностью до пяти двоичных разрядов, получим: А.В = 0,10001 • 10111
ГЛАВА 2
ЛОГИЧЕСКИЕ ОСНОВЫ ЦВМ
§ 2—1. Основные понятия алгебры — логики
Для описания логических схем вычислительных машин и релейных устройств в автоматике служит специальный мате матический аппарат, называемый алгеброй логики. '
Алгебра логики имеет дело с высказываниями. Высказы ванием называется любое утверждение, о котором мы можем точно сказать, истинно оно или ложно. Истинное высказыва ние условно обозначают 1, ложное — 0. Таким образом, лю бая переменная в алгебре логики может принимать только два значения: 0 или 1. Рассмотрим основные операции над логическими .переменными. При этом простые высказывания мы будем обозначать буквой X, а сложные высказывания, которые зависят от простых, —(буквой f .
§ 2—2. Основные логические связи между высказываниями
«Отрицание»
Функция / —'X называется функцией отрицания, или про сто отрицанием (f = X читается: f_ равно не X). Построим таблицу 3 связи для функции f ='Х. Так как высказывание X
может |
быть |
или 0 или |
1 |
( А = 0 — высказывание |
ложно, |
|||
X =' 1 — высказывание |
истинно), |
то |
для |
случая, |
когда |
|||
X = 0, |
X — 1, |
и наоборот, |
когда X =і 1, X = |
0. |
|
|||
|
|
|
|
Т а б л и ц а |
3 |
|
|
|
|
|
X |
|
/ = |
* |
|
|
|
|
|
0 |
|
1 |
|
|
|
|
|
|
1 |
|
0 |
|
|
|
|
109