
- •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. Коды представления чисел в эвм
Для представления со знаком в ЭВМ применяют прямой, обратный и дополнительный коды.
Общая идея построения кодов такова. Код трактуется как число без знака, а диапазон представляемых кодами чисел без знака разбивается на два поддиапазона. Один из них представляет положительные числа, а другой – отрицательные. Разбиение выполняется таким образом, чтобы принадлежность к поддиапазону определялась максимально просто. Очень удобно формировать коды так, чтобы значение старшего разряда указывало на знак представляемых чисел. Использование такого кодирования позволяет говорить о старшем разряде, как о знаковом , а об остальных как о цифровых разрядах кода, хотя, в общем, код трактуется как число без знака.
3.4.1. Прямой код
В бит S помещается знак числа, а остальные биты используются для абсолютного значения числа.
Пример Десятичные числа и их эквивалентное представление в прямом 4-разрядном коде.
Таблица 5
Десятичное число |
Прямой код |
Обратный код |
Дополнительный код |
Смещенный код |
||
7 |
0111 |
0111 |
0111 |
1111 |
||
6 |
0110 |
0110 |
0110 |
1110 |
||
5 |
0101 |
0101 |
0101 |
1101 |
||
4 |
0100 |
0100 |
0100 |
1100 |
||
3 |
0011 |
0011 |
0011 |
1011 |
||
2 |
0010 |
0010 |
0010 |
1010 |
||
1 |
0001 |
0001 |
0001 |
1001 |
||
0 |
0000 1000 |
0000 1111 |
0000
|
1000
|
||
-1 |
1001 |
1110 |
1111 |
0111 |
||
-2 |
1010 |
1101 |
1110 |
0110 |
||
-3 |
1011 |
1100 |
1101 |
0101 |
||
|
|
|
|
|
||
Окончание таблицы 5 |
||||||
Десятичное число |
Прямой код |
Обратный код |
Дополнительный код |
Смещенный код |
||
-4 |
1100 |
1011 |
1100 |
0100 |
||
-5 |
1101 |
1010 |
1011 |
0011 |
||
-6 |
1110 |
1001 |
1010 |
0010 |
||
-7 |
1111 |
1000 |
1001 |
0001 |
||
-8 |
|
|
1000 |
0000 |
Число в прямом коде имеет два представления нуля: 0000 и 1000. Диапазон представления чисел в прямом коде от –(24-1- 1) до (24-1- 1), или от –7 до 7. В случае n-разрядного кода диапазон представления чисел от
–(2n-1- 1) до (2n-1- 1).
Двоичные
наборы 0 1 2 2n-1-1
2n-1
2n-1+1
Числа
-(2n-1-1)
-1 0 1 2 +(2n-1-1)
Рис. 2
С “компьютерной” точки зрения у прямого кода есть два недостатка:1) два представления нуля; 2) операция алгебраического сложения требует анализа знаков операндов и выбора фактической операции сложения или вычитания. Указанные недостатки привели к тому, что прямой код иногда применяется при вводе и выводе данных.
Определение Прямой код двоичного числа определяется как
X при X ≥ 0; Xпр = А+│X│ при X ≤ 0, |
(9) |
где А – величина, равная весу старшего разряда сетки (для дробей А =1, а для целых чисел А = 2n-1).
Пример
n =5
12 Xпр
= 01100
-12 25-1
+ 12 Xпр
=11100