Форум » Вычисление количества информации » Алгоритм № 13 » Ответить

Алгоритм № 13

iZOL: Всем доброго времени суток! Помогите разобраться с алгоритмом. Задача: Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код сотрудника и срок действия пропуска. Личный код состоит из 10 символов, каждый из которых может быть одной из 26 заглавных латинских букв или 10 цифр. Для записи кода на пропуске используют посимвольное кодирование, все символы кодируют одинаковым минимально возможным количеством битов. Срок действия записывается как номер года (число от 0 до 50, означающее год от 2000 до 2050) и номер месяца (число от 1 до 12). Номер года и номер месяца записаны на пропуске как двоичные числа, каждое из них занимает минимально возможное количество битов. Вся информация на пропуске упакована так, чтобы занимать минимально возможное количество байтов. Сколько байтов занимает вся информация на пропуске? В ответе запишите только целое число – количество байтов. ********* Понятно, что первая часть пропуска 60 бит (10+26=36; ,берем 2 в 6-ой; 10*6 = 60). При переводе берем 8 Байт, т. к. 7 - не достаточно. Правильно ли я понял, что вторая часть пропуска с датой считается так: переводим оба числа в двоичную, получается 50=110010 и 12=1100. Далее считаем двоичные разряды и получаем 10 бит, вместится в 2 Байта, итого всего будет 10 Байт? Что-то меня мучают сомнения на счет правильности алгоритма...

Ответов - 3

iZOL: Да, исправляюсь, 60+10 =70, значит всего 9 Байт, меня смущает правильность расчетов второй части пропуска

cabanov.alexey: Ну логика в общем верная. Для записи чисел от 0 до 50 нужно не менее 6 бит Для записи чисел от 0 до 12 нужно не менее 4 бит НО вы поторопились с упаковкой личного кода в байты, это задачей не требуется (оставим 60 бит) 60+6+4=70 бит ИЛИ 9 Байт

iZOL: Спасибо большое, сомнения развеяны




полная версия страницы