ВСЮ ЗАДАЧУ РЕШАТЬ НЕ НУЖНО, ТОЛЬКО СКАЖИТЕ, ЗА СКОЛЬКО БАЙТ ПРИНЯТЬ ДИАПАЗОН от 1 до 1200(ПОЧЕМУ). ЯВНО НЕ 1 БАЙТ, Т.К. 1 Б ОТ 0 ДО 255.
Сотрудникам компании выдают электронную карту, на которой записаны их личный код, номер подразделения (целое число от 1 до 1200) и дополнительная информация. Личный код содержит 17 символов и может включать латинские буквы (заглавные и строчные буквы различаются), десятичные цифры и специальные знаки из набора @#$%^&*(). Для хранения кода используется посимвольное кодирование, все символы кодируются одинаковым минимально возможным количеством битов, для записи кода отводится минимально возможное целое число байтов. Номер подразделения кодируется отдельно и занимает минимально возможное целое число байтов. Известно, что на карте хранится всего 48 байтов данных. Сколько байтов занимает дополнительная информация?
Answers & Comments
2) при посимвольном кодировании расходуется 1 байт/символ (ну или 1 символ/ байт), получается 17Б на личный код
3) итого 17+2= 19 байт минимум, 48-19=29Б доп.информации
Выбираем из условия все. что касается номера подразделения (именно он имеет диапазон от 1 до 1200). Итак:
- номер подразделения (целое число от 1 до 1200);
- номер подразделения кодируется отдельно и занимает минимально возможное целое число байтов.
Чтобы закодировать число 1200, нужно 11 бит.
Действительно, 2¹⁰ = 1024, 2¹¹ = 2048 и 1024 < 1200 < 2048.
11 бит - это 11/8 = 1 целая и 3/8 байта. Округляем до целых в большую сторону, получаем 2 байта.