- •1. Системы счисления
- •1.1. Позиционные системы счисления
- •1.2. Преобразование чисел из одной системы счисления
- •2. Двоичная арифметика
- •Проверка
- •3. Представление чисел в эвм
- •3.1. Формы представления чисел в эвм
- •Пример Представление чисел в нормализованной форме.
- •3.2. Целые беззнаковые двоичные числа
- •3.3. Целые знаковые двоичные числа
- •3. 4. Коды представления чисел в эвм
- •3.4.1. Прямой код
- •3.4.2. Обратный код
- •3.4.3. Дополнительный код
- •3.4.4. Прямой, обратный и дополнительный коды целых чисел в любой позиционной системе счисления
- •3.5. Сложение и вычитание чисел в обратном и дополнительном двоичных кодах
- •3.5.1. Сложение чисел в дополнительном коде
- •3.5.2. Сложение чисел в обратном коде
- •3.5.3. Расширение знака
- •3.5.4. Вычитание чисел в дополнительном коде
- •3.5. 5. Вычитание чисел в обратном коде
- •3.6.1. Сложение десятичных чисел в дополнительном коде
- •3.6.2. Сложение десятичных чисел в обратном коде
- •3.6.3. Вычитание десятичных чисел в дополнительном коде
- •3.6.4. Вычитание десятичных чисел в обратном коде
- •4. Двоичные коды
- •4.1. Взвешенные коды
- •4.1.1. Десятичное сложение в коде 8421
- •4.1.2. Десятичное вычитание в коде 8421
- •4.2. Невзвешенные коды
- •Пример. Кодовый набор Грея 1101101011 соответствует двоичному числу 1001001101.
- •Пример. Кодовый набор Грея 10111001 соответствует двоичному числу 11010001.
- •5. Обнаружение и исправление ошибок
- •5.1. Коды с обнаружением ошибок
- •5.2. Коды с исправлением ошибок
- •5.2.1. Основные принципы построения кодов Хэмминга с исправлением ошибок
- •5.2.2. Модификация метода четности-нечетности
- •6. Задачи для самостоятельного решения
- •6.1. Задачи для раздела 1
- •6.2. Задачи для раздела 2
- •6.3. Задачи для раздела 3
- •6.4. Задачи для раздела 4
- •6.5. Задачи для раздела 5
- •Литература
- •3.5. Сложение и вычитание чисел в обратном и дополнительном
4.1.1. Десятичное сложение в коде 8421
В соответствии с принятым кодом необходимо видоизменять двоичную арифметику.
Выполним:
а) 31+24 = 55 в коде 8421 0011 0001
+ 0010 0100
0101 0101
5 5
б) 35+27= 62 0011 0101
+ 0010 0111
0101 1100 не 63; при двоичном сложении получен запрещенный набор. Необходимо перенести в старшую тетраду 1, равную 10 единицам младшей тетрады. При двоичном сложении осуществляется перенос 16 единиц. Поэтому в тетраде, где зафиксирован запрещенный кодовый набор, выполняется коррекция путем сложения с двоичной 610=01102
0011 0101
+ 0010 0111
0101 1100
+0000 0110
0110 0010
6 2
в) 38+29= 67 0011 1000
+ 0010 1001
0110 0001 не 67; при двоичном сложении не было запрещенных наборов. Однако был осуществлен перенос в старшую тетраду 1, равной 16 единицам младшей тетрады. Необходимо было перенести в старшую тетраду 1, равную 10 единицам младшей тетрады. Поэтому в тетраде, откуда был зафиксирован перенос, выполняется коррекция путем сложения с двоичной 610=01102
0011 1000
+ 0010 1001
0110 0001
+ 0000 0110
0110 0111
6 7
Правило Корректирующее слагаемое 610=01102 при сложении двух чисел в коде 8421 должно добавляться к каждой группе битов (тетраде), если:
-
получена недопустимая цифра;
-
был перенос в старшую группу битов в процессе сложения.
Замечание Коррекция в каждой группе битов может выполняться только один раз. Коррекция может выполняться не одновременно.
4.1.2. Десятичное вычитание в коде 8421
Рассмотрим примеры:
а) 49- 24 = 25 _0100 1001
0010 0100
0010 0101
2 5
б) 42 –29 = 13 _0100 0010
0010 1001
0001 1001 не 13; при двоичном вычитании заем из старшей тетрады эквивалентен 16 единицам в младшей тетраде. При десятичном вычитании заем должен составлять 10 единиц. Поэтому необходимо в младшей тетраде, в которую осуществлялся заем, выполнить коррекцию путем вычитания двоичной 610=01102.
_0100 0010
0010 1001
0001 1001
0000 0110
0001 0011
1 3
Правило Корректирующее слагаемое 610=01102 при вычитании двух чисел в коде 8421 должно вычитаться из каждой группы разности, которая получила заем.