Головна сторінка Випадкова сторінка КАТЕГОРІЇ: АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія |
Класифікація і влаштування основних робочих органів.Дата добавления: 2014-12-06; просмотров: 575
В ЭВМ схемы, реализующие операцию сложения, получаются гораздо проще и компактнее, чем схемы, выполняющие операцию вычитания. Поэтому обычно в цифровых машинах применяют только схемы сложения, а операцию вычитания заменяют сложением специально подобранных кодов чисел. Применяются следующие коды чисел: прямой, обратный и дополнительный. Прямой код применяют при умножении и делении, а обратный и дополнительный - используют для замены операции вычитания сложением. Существуют также модифицированные обратный и дополнительный коды. Изображения положительных чисел совпадают во всех трех кодах: прямом, обратном и дополнительном. Обратный и дополнительный коды отрицательных чисел (а также их модификации) различны.
Простановка знака суммы при алгебраическом сложении должна производиться автоматически. Знаки (+) и (–) у слагаемых могут обозначаться только при помощи сигналов, "понятных" машине, т. е. при помощи нулей и единиц. При этом следует иметь в виду, что электронные считающие элементы назад не срабатывают, а поэтому вычитание в них заменяется сложением в дополнительном или обратном кодах. Рассмотрим сначала сложение в дополнительном коде. Пусть нужно произвести следующее действие: от 176 – 27, не используя вычитание. Условимся все числа писать с одинаковым количеством цифр, равным количеству цифр в наибольшем числе: 176 – 027. Заменив число 027 его дополнением до 1000, которое называется дополнительным кодом числа 027, т. е. числом 1000 – 973 = 027, получим: 176 – (1000 – 973) = 176 + 973 – 1000. Решение: +176 973 _1149 1000 +149
Очевидно, в этом примере можно обойтись без вычитания, так как вычитание числа 1000 можно не производить, если единица переноса в старший разряд каким-либо действием будет обращена в нуль. Рассмотрим еще один пример: 027 - 176. Как и прежде, заменим число 176 его дополнением до 1000. Тогда 027 - 176 = +027 824 _851 1000 -149 Здесь единицы переноса в старший разряд не образуется, но отрицательный результат получился в виде дополнения его до 1000. Таким образом, в наших примерах получается, что если отрицательные слагаемые заменять их дополнением до 1000, то отрицательная сумма тоже получится в виде дополнения до 1000.
Положительные числа в приведенных примерах остаются без изменения. Применим это же правило для алгебраического сложения двух отрицательных чисел: - 176 - 527 = - (1000 - 824) - (1000 - 473) = -1000 + 824 - 1000 + 473 = = +824 473 _1297 1000 _297 1000 -703
Правило соблюдается и в этом примере. Условимся число (–1000) обозначать перед нашими числами в виде 1, а в случае его отсутствия ставить перед числом О. Тогда 1 будет ставиться перед всеми отрицательными числами: 176 - 027 = +0.176 1.973 0.149 _ По-видимому, можно 1 заменить 1, если при использовании 1 как знака производить “сложение" цифр, заменяющих знаки (+) и (–), по определенным правилам. В первом примере это правило выглядит так: 1 - 1 176 - 027 = +0.176 1.973 0.149, т.е. “сложение” цифр, заменяющих знаки, должно идти без переноса в старший разряд. 1 Во втором примере: 027 - 176 = + 0.027 1.824 1.851 Поскольку 1 изображается (-1000), то результат 1.851 есть дополнение числа 851 до 1000, взятое со знаком минус: 1.851 à 1.149 = - 149. В третьем примере: -176 - 527 = + 1.824 1.473 1.297 Здесь также теряется единица переноса в старший разряд при "сложении” цифр, заменяющих знаки (+) и (–). Во всех трех примерах слагаемые трехзначные, а суммы не превосходят 1000. Рассмотрим примеры, в которых сумма не меньше тысячи при трехзначных слагаемых: +0.176 0.825 1.001 Если придерживаться правила, предложенного в предыдущих примерах, то сумма 1.001 означает (– 1000 + 001) = – 999, что неправильно. В то же время, если сдвинуть всю сумму вправо, освободив место для знака, то результат 0.1001= + 1001 будет правильным, но станет четырехзначным. Рассмотрим случай, когда оба слагаемых отрицательны. -176 - 825 = +1.824 1.175 0.999 Результат +999 явно неправилен, и если “сложение" знаков производить по предложенному правилу, то его даже невозможно исправить. Нужно сохранить единицу переноса в старший разряд знака, что можно сделать, выделив для обозначения знаков (+) и (–) два разряда. Такой код числа называется модифицированным дополнительным кодом. В этом коде очевидно плюс следует обозначать 00, а минус 11. Тогда при четырехзначной сумме трехзначных слагаемых получим: +00.176 00.825 01.001 В двух разрядах для знака разные цифры: 0 и 1. Сдвинув всю сумму вправо, получим правильный результат 00.1001.
Рассмотрим другой пример: - 176 - 825 = +11.824 11.175 10.999 В знаковом разряде опять-таки разные цифры: 1 и 0. Сдвинем результат вправо, причем в первом знаковом разряде поставим 1, а в цифровых разрядах получившегося числа 11.0999 заменим первый 0 на 1, а остальное число – его дополнением до 1000. Тогда получим правильный четырехзначный результат 11.1001. Рассмотрим, будут ли справедливы все предложенные правила в общем случае для чисел в двоичной системе счисления. В цифровых вычислительных машинах различными кодами изображаются только двоичные числа, являющиеся правильными дробями.
|