- •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.4.2. Обратный код
Определение Обратный код двоичного числа X, представленного в n-разрядной сетке, определяется как
X при X ≥ 0; Xобр = B-│X│ при X ≤ 0, |
(10) |
где B – величина наибольшего числа без знака, размещающегося в n-разрядной сетке (для дробей В =2 – 2-(n-1), а для целых чисел В = 2n-1).
Диапазон чисел, представленных обратным кодом, такой же, как для прямого кода.
Пример n =5
12 Xобр = 01100
-12 25 - 1-12 Xобр =10011
По определению обратный код отрицательного числа представляет собой дополнение модуля исходного числа до наибольшего числа без знака, помещающегося в разрядную сетку.
Пример n =5
-12 11111 - наибольшее число без знака, помещающееся в разрядную сетку;
01100 - модуль исходного числа;
10011 - дополнение модуля исходного числа;
Xобр =10011.
В связи с этим, получение обратного кода отрицательного двоичного числа сводится к инверсии n-разрядного модуля этого числа.
Правило Так как модуль чисел, представимых в n-разрядной сетке, │X│<A, то в старшем (знаковом) разряде обратного кода у положительного числа будет 0, а у отрицательного числа 1. В цифровых разрядах обратного двоичного кода представляется либо модуль числа (для положительных чисел), либо его инверсия (для отрицательных чисел).
Нуль имеет два значения.
3.4.3. Дополнительный код
Определение Дополнительный код двоичного числа X, представленного в n-разрядной сетке, определяется как
X при X ≥ 0; Xдоп = С-│X│ при X< 0, |
(11) |
где С – величина, равная весу разряда, следующего за старшим разрядом используемой разрядной сетки (для дробей С=1, а для целых чисел С=2n).
Диапазон чисел, представленных дополнительным кодом, отличается от диапазона прямого или обратного кода. Для положительных и отрицательных чисел поддиапазоны различны. Для положительных чисел поддиапазон такой же, как у прямого и обратного кода, а у отрицательных чисел поддиапазон больше на единицу:
0 ≤ X ≤ 2n-1- 1 для положительных чисел;
0 ≤ │X│≤ 2n-1 для отрицательных чисел.
Пример n =5
12 Xдоп = 01100
-12 25 -12 Xдоп =10100
Из определения дополнительного кода следует, что старший (знаковый) разряд у кода положительного числа равен 0, а у кода отрицательного числа равен 1. В цифровых разрядах дополнительного двоичного кода положительного числа представляется модуль этого числа. Дополнительный код отрицательного числа удобно получать через обратный код. Если рассматривать обратный и дополнительный коды числа как двоичные числа без знаков, то для отрицательных двоичных дробей Xдоп = Xобр + 2 -(n-1) , а для отрицательных двоичных целых чисел Xдоп = Xобр + 1. Таким образом, дополнительный код отрицательного числа может быть получен из обратного кода путём прибавления 1 к младшему разряду обратного кода.
Правило Для получения дополнительного кода отрицательного числа X необходимо записать n-битный модуль этого числа, затем все биты инвертируются (заменяются на противоположные) и к полученному числу прибавляется 1. Для положительных чисел прямой, обратный и дополнительный коды совпадают.
Пример n =5
12 Xпр = 01100 Xобр = 01100 Xдоп = 01100
-12 Xпр = 11100 Xобр =10011 Xдоп = 10100
Таблица 6
Определение кода для двоичных целых чисел |
Пример n = 4; X =1; X = -1; |
Правило |
X , X ≥ 0; Xпр = 2n-1+│X│, X ≤ 0. |
Xпр = 0001 Xпр = 1001 1000 + 001 1001 |
модуль в цифровых разрядах сетки; в старший (знаковый) разряд: 0, если число положительное ; 1, если число отрицательное. |
|
|
|
Окончание таблицы 6 |
||
Определение кода для двоичных целых чисел |
Пример n = 4; X =1; X = -1; |
Правило |
X, X ≥ 0; Xобр= 2n-1-│X│, X ≤ 0. |
Xобр = 0001 10000 Xобр = 1110 - 1 1111 - 001 1110 |
положительное число – код совпадает с прямым; отрицательное число – инверсия цифровых разрядов прямого кода. |
X , X ≥ 0; Xдоп = 2n -│X│, X< 0. |
Xдоп = 0001 Xдоп = 1111 10000 - 0001 1111
|
положительное число – код совпадает с прямым; отрицательное число – инверсия цифровых разрядов прямого кода + 1 в младший разряд. |