ni – число двоичных разрядов в коде i – го символа,
N – число символов в исходном алфавите А,
- для задания 7 (см. табл. 12):
lср = 0,2*2+0,15*3+0,1*3*2+0,05*4*3+0,05*5*6=3,55 бита , (26)
- для задания 8 (см. табл. 13 и 14):
lср = 0,2*2+0,15*3+0,1*3+0,1*4+0,05*4*5+0,05*5*4=3,55 бита, (27)
3) для определения общей эффективности кодов применим статистическую меру измерения информации, содержащейся в одном символе исходного алфавита А: это значение определит lпр предельное количество двоичных разрядов, достаточное для кодирования символов исходного алфавита. Для расчета используем формулу:
. (28)Тогда получим (см. частоты в табл. 11):
lпр = -(2*(0,1* log20,1) + 0,2* log20,2 + 0,15*log20,15 + 9*(0,05*log20,05)) = 3,48418 бита.
(29)
Таким образом, все построенные коды являются избыточными. Однако минимальной избыточностью обладают эффективные коды: они минимально отличаются от предельного значения числа двоичных разрядов.
Часть 3. Формы представления чисел
Выполнить сложение в обратном коде двух отрицательных чисел, сформированных из пятиразрядного номера зачетной книжки по правилу:
· целая часть первого числа образуется из первых трех разрядов, дробная часть – из оставшихся разрядов;
· целая часть второго числа совпадает с дробной частью первого числа, а его дробная часть совпадает с целой частью первого числа.
Например:
а) номер зачетной книжки равен 01234;
б) первое число равно –12,34; (30)
в) второе число равно –34,12.
Разрядная сетка имеет структуру 6х10, где 6 – число разрядов порядка, 10 – число разрядов мантиссы. При переводе дробной части слагаемых ориентироваться на необходимость заполнения разрядной сетки мантиссы.
Результат сложения перевести в десятичную систему счисления и сравнить с тем, что должно было бы получиться.
1) перевод слагаемых в двоичную систему счисления:
· перевод целой части выполним на примере числа 34 последовательным делением делимого на 2:
Таблица 21
Номер шага | Делимое | Целая часть частного | Остаток |
1 | 34 | 17 | 0 |
2 | 17 | 8 | 1 |
3 | 8 | 4 | 0 |
4 | 4 | 2 | 0 |
5 | 2 | 1 | 0 |
Получаем:
34 = 1000102. (31)
· перевод дробной части выполним на примере числа 0,12 последовательным умножением множимого на 2. При этом перевод заканчивается, когда сумма двоичных разрядов целой части и дробной будет равна 9 (т.е. количеству разрядов для мантиссы минус 1 разряд на знак), или число разрядов дробной части будет равно 3 (по тем же соображениям):
Таблица 22
Номер шага | Множимое | Целая часть произведения | Дробная часть произведения |
1 | 0,12 | 0 | 24 |
2 | 0,24 | 0 | 48 |
3 | 0,48 | 0 | 96 |
Поскольку число двоичных разрядов (см. целые части произведения в табл. 22) равно 3, процедура перевода дробной части заканчивается. Таким образом:
0,12 = 0,0002. (32)
Перевод второго слагаемого дает:
12,34 = 1100,010102 (33)
2) нормализация двоичных чисел и размещение их в разрядных сетках:
нормализация
-100010,000 Þ -0,100010000Е+110 (34)
-1100,01010 Þ -0,110001010Е+100 (35)
размещение в разрядных сетках
порядок мантисса 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 |
Прямые коды слагаемых | 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 |
0 | 0 | 0 | 1 | 0 | 0 | |||||||||||
0 | 0 | 0 | 0 | 1 | 0 | |||||||||||
Сумма (второй порядок) | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
-12,34 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 |
5) сложение мантисс. Поскольку обе мантиссы отрицательны, сложение выполняется в обратных кодах:
Прямые коды слагаемых | 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 |
6) перевод результата в десятичную систему счисления:
-0,101110010Е+6= -101110,01= -(1*25+1*23+1*22+1*21+1*2-2) =
-(32+8+4+2+0,25) = -46,25. (43)