- •1. Перевод чисел из одной системы счисления в другую
- •1.1. Правила перевода целых чисел
- •1.2. Правила перевода правильных дробей
- •1.2.1. Перевод из десятичной системы счисления – в двоичную и шестнадцатеричную:
- •0,1101 – Результирующее число.
- •1.3. Правило перевода дробных чисел
- •2. Построение прямых кодов и кодирование дискретного сигнала
- •3. Построение кодов с учетом частоты символов и кодирование дискретного сигнала
- •4. Построение кода Грея и кодирование дискретного сигнала
- •5. Криптографическое кодирование дискретного сигнала методом простой подстановки
- •6. Криптографическое кодирование дискретного сигнала методом Виженера
- •7. Построение эффективных кодов методом Шеннона-Фано и кодирование дискретного сигнала
- •8. Построение эффективных кодов методом Хаффмена и кодирование дискретного сигнала
- •9. Измерение дискретного сигнала
- •10. Сложение вещественных чисел в обратных кодах
- •Нормализация
- •Размещение в разрядных сетках
- •11. Сложение вещественных чисел в дополнительных кодах
11. Сложение вещественных чисел в дополнительных кодах
Задание к работе: выполнить сложение в дополнительном коде двух отрицательных чисел из предыдущего задания. Разрядная сетка имеет структуру 6х10, где 6 – число разрядов порядка, 10 – число разрядов мантиссы. При переводе дробной части слагаемых ориентироваться на необходимость заполнения разрядной сетки мантиссы.
Результат сложения перевести в десятичную систему счисления и сравнить с тем, что должно было бы получиться.
Решение задачи
Используем результаты первых этапов предыдущего задания.
Пусть слагаемые размещены в разрядных сетках и выполнено выравнивание порядков.
сложение мантисс. Поскольку обе мантиссы отрицательны, сложение выполняется в дополнительных кодах:
Прямые коды слагаемых |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
|
Обратные коды слагаемых |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
|
Дополнительные коды слагаемых |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
|
Сумма |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
Полученная единица переноса при сложении знаковых разрядов отбрасывается.
Поскольку результат отрицателен, он представлен в дополнительном коде. Выполняется перевод в прямой код через обратный. Получаем:
Обратный код суммы |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
Прямой код суммы |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
перевод результата в десятичную систему счисления:
-0,101110010Е+6= -101110,01= -(1*25+1*23+1*22+1*21+1*2-2) =
-(32+8+4+2+0,25) = -46,25.
определим полученную погрешность вычисления. Поскольку результат совпадает с предыдущей задачей, имеем такую же погрешность -0,21
1 Здесь и далее между кодовыми комбинациями введены пробелы только для удобства восприятия