Математики, шпионы и хакеры. Кодирование и криптография | страница 42



От 32 и дальше: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2А, 2В, 2С…



Эти файлы были созданы компьютером автоматически. Их странные имена — на самом деле шестнадцатеричные числа.


Шестнадцатеричные цифры не различают регистр букв (1Е означает то же самое, что и 1е). В следующей таблице приведены первые 16 двоичных чисел и их шестнадцатеричные эквиваленты:



Чтобы перейти от двоичной записи к шестнадцатеричной, мы сгруппируем биты в четыре группы по четыре цифры, начиная с правого конца, а потом преобразуем каждую четверку цифр в соответствии с предыдущей таблицей. Если количество двоичных цифр не кратно четырем, мы дописываем слева нули. Чтобы перейти от шестнадцатеричной записи к двоичной, мы преобразуем каждую шестнадцатеричную цифру в ее двоичный эквивалент, как показано в следующем примере.

Шестнадцатеричное число принято обозначать так: 9F2>16 (с нижним индексом 16). Напомним соответствующие двоичные коды:



9F2>16 = 1001111100102 (здесь нижний индекс 2 указывает, что число выражено в двоичной системе).

Давайте теперь осуществим обратный процесс: число 11101001102 состоит из десяти цифр. Мы дополняем его двумя нулями слева, чтобы получить 12 цифр, которые можно сгруппировать по четыре.

Преобразуем:

1110100110>2 = 0011 1010 0Н0>2 = 3А6>16.

Какая связь между шестнадцатеричными символами и ASCII-кодами? Каждый ASCII-код содержит восемь битов (один байт) информации, поэтому пять ASCII-символов содержат 40 битов (пять байтов), и так как шестнадцатеричный символ содержит четыре бита, мы заключаем, что пять ASCII-символов — это десять шестнадцатеричных символов.

Рассмотрим пример кодирования фразы в шестнадцатеричном коде. Например, возьмем название NotRealCo Ltd. Выполним следующие действия. 1 2 31. Переведем NotRealCo Ltd в двоичные коды в соответствии с таблицей ASCII.

2. Сгруппируем цифры по четыре. (Если длина двоичной строки не кратна четырем, мы добавим нули слева.)

3. Выполним замену по таблице соответствий двоичных и шестнадцатеричных символов.




Фраза NotRealCo Ltd в шестнадцатеричных символах выглядит так:

4Е 6F 74 72 65 61 6С 63 6F 20 48 74 64.


Системы счисления и переход к другому основанию

Если система счисления имеет n цифр, то число n называется основанием системы.

На руках человека десять пальцев, поэтому, вероятно, и была придумана десятичная система счисления — счет проводился на пальцах. Десятичное число, например, 7392, представляет собой количество, равное семи тысячам трем сотням девяти десяткам и двум единицам. Тысячи, сотни, десятки и единицы являются степенями основания системы счисления, в данном случае 10. Число 7392, таким образом, может быть выражено следующим образом: