
- •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. Сложение и вычитание чисел в обратном и дополнительном
3.5.2. Сложение чисел в обратном коде
а) Оба числа положительные. Складываются два положительных числа 4-разрядных числа. n = 5.
Десятичное сложение |
Двоичное сложение |
Сложение в обратном коде |
+310 + +410 +710 |
+00112 + +01002 +01112 |
000112 + 001002 001112 |
б) Одно из чисел положительное, а другое – отрицательное. Положительное число больше по модулю отрицательного. n = 5.
Десятичное сложение |
Двоичное сложение |
Сложение в обратном коде |
+910 + -410 +410 |
+10012 + -01002 +01012 |
010012 + 110112 + 001012 циклический перенос! |
в) Числа имеют разные знаки. Отрицательное число больше по модулю положительного числа. n = 5.
Десятичное сложение |
Двоичное сложение |
Сложение в обратном коде |
+310 + -1210 -910 |
+00112 + -11002 -10012 |
000112 + 100112 101102 |
+1110 + -1110 -110 |
+10112 + -10112 00002 |
010112 + 101002 111112 два представления нуля! |
г) Оба числа отрицательные. n = 5.
Десятичное сложение |
Двоичное сложение |
Сложение в обратном коде |
-310 + -110 -1410 |
- 00112 + - 10112 - 11102 |
111002 + 101002 + 100012 циклический перенос! |
Правило сложения чисел в обратном коде Коды обоих чисел суммируются по правилам двоичного сложения разряд за разрядом, включая знаковые. Если возникает перенос из знакового разряда, то он прибавляется к младшему разряду полученной суммы.
3.5.3. Расширение знака
Знаковый бит числа, представленного в дополнительном или обратном коде, разрешается копировать влево произвольное число раз, не изменяя при этом значения числа. Операция расширения знака необходима в тех случаях, когда исходные операнды в операциях сложения и вычитания имеют различную длину.
Пример
Таблица 8
|
n =5 |
n =7 |
||||
X |
Xпр |
Xобр |
Xдоп |
Xобр |
Xдоп |
Xпр |
12 |
01100 |
01100 |
01100 |
0001100 |
0001100 |
0001100 |
-12 |
11100 |
10011 |
10100 |
1110011 |
1110100 |
1001100 |
3.5.4. Переполнение
Если при выполнении операции сложения получается результат, который выходит за пределы диапазона представляемых чисел, то имеет место переполнение. Сложение двух чисел с разными знаками никогда не приводит к переполнению, чего нельзя сказать о сложении двух чисел с одинаковыми знаками.
При сложении переполнение происходит в том случае, если слагаемые имеют одинаковые знаки, а знак суммы отличается от знака слагаемых.
В иной формулировке: переполнение происходит в том случае, если значения битов переноса в знаковый разряд и из знакового разряда различны.
Переполнение нужно фиксировать!
Пример
а) Оба числа положительные.
Десятичное сложение |
Двоичное сложение |
Сложение в дополнительном коде |
|
n = 4 |
n = 5 |
||
+510 + +610 +1110 |
+1012 + +1102 +10112 |
01012 + + 01102 + 10112 - переполнение! |
001012 + + 001102 + 010112 +
|
б) Оба числа отрицательные.
Десятичное сложение |
Двоичное сложение |
Сложение в дополнительном коде |
|
n = 4 |
n = 5 |
||
-310 + -610 -910 |
-112 + -1102 -10012 |
11012 - + 10102 - 101112 + переполнение! |
111012 - + 110102 - (1)101112 -
|