- •Федеральное государственное бюджетное образовательное учреждение
- •1. Перевод чисел из одной системы счисления в другую
- •1.1. Правила перевода целых чисел
- •1.2. Правила перевода правильных дробей
- •0,1101 – Результирующее число.
- •1.3. Правило перевода дробных чисел
- •2. Построение прямых кодов и кодирование дискретного сигнала
- •3. Построение кодов с учетом частоты символов и кодирование дискретного сигнала
- •4. Построение кода Грея и кодирование дискретного сигнала
- •5. Криптографическое кодирование дискретного сигнала методом простой подстановки
- •6. Криптографическое кодирование дискретного сигнала методом Виженера
- •7. Построение эффективных кодов методом Шеннона-Фано и кодирование дискретного сигнала
- •8. Построение эффективных кодов методом Хаффмена и кодирование дискретного сигнала
- •9. Измерение дискретного сигнала
- •10. Сложение вещественных чисел в обратных кодах
- •Нормализация
- •Размещение в разрядных сетках
- •Выравнивание порядков
- •Сдвиг мантиссы
- •11. Сложение вещественных чисел в дополнительных кодах
Нормализация
-100010,000 -0,100010000Е+110
-1100,01010 -0,110001010Е+100
Размещение в разрядных сетках
порядок мантисса
-34,12 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
-12,34 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
знаковые разряды
определение большего порядка путем вычитания из одного порядка другого и анализа разности: 110 – 100. Поскольку в решении задачи участвуют отрицательные числа, выполним перевод вычитаемого в обратный код и произведем сложение порядков по правилам сложения чисел в обратном коде:
Прямые коды слагаемых |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 | |
Обратные коды слагаемых |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 | |
Сумма |
0 |
0 |
0 |
0 |
1 |
0 |
Поскольку сумма положительна, большим является первый порядок (у слагаемого –34,12), а потому на следующем шаге работа ведется со вторым слагаемым –12,34;
выравнивание порядков и сдвиг мантиссы для слагаемого с меньшим порядком:
Выравнивание порядков
Прямые коды слагаемых |
0 |
0 |
0 |
1 |
0 |
0 | ||||||
0 |
0 |
0 |
0 |
1 |
0 | |||||||
Сумма (второй порядок) |
0 |
0 |
0 |
1 |
1 |
0 |
Сдвиг мантиссы
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
Т
(42)
-12,34 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
сложение мантисс. Поскольку обе мантиссы отрицательны, сложение выполняется в обратных кодах:
Прямые коды слагаемых |
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 |
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.
7) определим полученную погрешность вычисления. Для этого сложим исходные числа: -34,12+(-12,34)=-46,46. Как видно по результату, имеем погрешность:
-46,46 - (-46,25) = -0,21
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Здесь и далее между кодовыми комбинациями введены пробелы только для удобства восприятия