
- •1.4. Алфавитное представление и преобразование информации
- •Глава 2
- •2.1. Непозиционные системы счисления
- •2.2. Позиционные системы счисления
- •Неоднородные позиционные системы счисления
- •Однородные позиционные системы счисления
- •2.3. Кодированные позиционные системы счисления
- •2.4. Системы счисления специального назначения
- •2.6. Символические системы счисления
- •2.7. Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел из одной позиционной системы счисления в другую
- •2.8. Выбор системы счисления для применения эвм
- •2.9. Двоичная система счисления
- •2.10. Представление двоичных чисел в эвм
- •2.11. Точность представления чисел в эвм
- •Глава 3
- •3.1. Основные понятия
- •3.2. Операция алгебраического сложения в эвм
- •3.3. Операция сдвига
- •3.4. Сложение чисел в машинах с плавающей запятой
- •8.5. Округление чисел в эвм
- •3.6. Точность выполнения операций в машине с плавающей запятой
- •3.7. Вычисления с двойной точностью
- •Глава 4
- •4.1. Общие сведения об операции умножения
- •4.2. Умножение, выполняемое методом накопления частичных произведений
- •4.3. Сравнение схем умножения методом накопления
- •4.4. Методы ускорения операции умножения
- •4.5. Умножение чисел, заданных в дополнительном коде
- •4.6. Умножение чисел в машинах с плавающей запятой
- •4.7. Особенности выполнения операции умножения в современных эвм
- •4.8. Деление чисел с восстановлением остатков
- •4. 9. Деление без восстановления остатков
- •4.10. Машинные схемы деления
- •4.11. Деление чисел в дополнительном коде
- •4.13. Деление чисел в машинах с плавающей запятой
- •Глава 6
- •6.1. Сложение в прямых д-кодах
- •6.2. Сложение чисел в инверсных д-кодах
- •Для кода д2
- •6.3. Сдвиг д-кодов
- •6.4. Умножение чисел в д-кодах
- •6.5. Деление чисел в д-кодах
- •6.6. Перевод чисел в д-кодах
6.2. Сложение чисел в инверсных д-кодах
Д-коды могут быть представлены в разрядной сетке машины в форме либо с фиксированной, либо с плавающей запятой. При этом отрицательные числа могут быть представлены в прямом, обратном и дополнительном кодах. Поэтому, если
А = — 0, а1 а2...аn, где аi — тетрады, то
[А]пр= 1, а1 а2...аn;
[
А]0=
1, а1
а2...аn;
[
А]Д=
1, а1
а2...аn;
г де аi — дополнение до р — 1 = 9 во всех тетрадах; аn — дополнение до р = 10 в младшей тетраде.
С ледовательно, ап + ап= р = 10; аi. + аi = р - 1 = 9. Обратный код Д2 получается простым инвертированием цифр тетрад.
Пример. Найти обратный и дополнительный коды числа А = —0,136 для кода Д2.
АД2= - 0,0100 0110 1001;
[AД2]0= 1,1011 1001 0110.
На основании соотношения получим дополнительный код числа А:
[AД2]Д= 1,1011 1001 0111.
В коде Д1 прямое инвертирование цифр тетрад означает получение дополнения до 24 — 1 = 15. Поэтому для получения обратного кода числа в коде Д1 во все тетрады числа прибавляют вначале
+0110, после чего производится инвертирование цифр тетрад
Пример. Для числа А = —0,148 = —0,0001 0100 1000 получить обратный и дополнительный коды Д1.
0,0001 0100 1000
+
0110 0110 0110
0,0111 1010 1110.
Отсюда [AД1]0 = 1,1000 0101 0001;
[AД1]Д = 1,1000 0101 0010.
Отметим, что добавление 1 в младший разряд при получении дополнительного Д2 кода производится гораздо сложнее, чем в коде Д1, так как эта операция выполняется как обычное сложение в Д2 коде. При сложении в инверсных Д-кодах, как и при сложении в прямых Д-кодах. необходима коррекция результата, которая может осуществляться либо программными, либо аппаратными средствами. На практике обычно применяют второй способ. При этом в процессе выполнения коррекции цепи межтетрадного переноса в сумматорах блокируются для кода Д2, а при сложении в коде Д1 не блокируются.
Пример. Сложить в обратном и дополнительном кодах Д1 и Д2 числа
А = — 0,926 и В = + 0,845.
Для кода Д1
А = — 0,1001 0010 0110 и В = + 0,1000 0100 0101.
[A] 0= 1,0000 0111 0011
+
[В]0 = 0,1000 0100 0101
1,1000 1011 1000
+ 0110
[С] 0 = [A]0 + [B]0=0,1001 0001 1000
[С] пр = 1,0000 1000 0001,
[A] Д = 1,0000 0111 0100
+
[В]Д = 0,1000 0100 0101
1,1000 1011 1001
+ 0110
[С] Д =1,1001 0001 1001
[С] пр =1,0000 1000 0001