Шестнадцатеричная
система — еще один известный код, используемый в вычислениях. Это
система счисления, которая использует 16 уникальных «цифр» (отсюда и
название — шестнадцатеричная), в отличие от обычной системы с десятью
цифрами (десятичной). Можно сказать, что шестнадцатеричная система
является вторым языком компьютеров после двоичной системы. Почему 16
цифр? Напомним, что байт, основная единица хранения информации на
компьютере, состоит из восьми битов, которые дают 28 = 256 различных комбинаций из 0 и 1. А 28 = 24 х 24 = 16 х 16. Иными словами, один байт — это комбинация двух шестнадцатеричных чисел. Шестнадцать
«цифр» шестнадцатеричной системы — это традиционные цифры 0, 1, 2, 3,
4, 5, 6, 7, 8, 9 и еще шесть символов, выбранных по соглашению: А, В, С,
D, Е, F. Числа в шестнадцатеричной системе записываются следующим
образом: От 0 до 15: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F. От 16 до 31: 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1А, 1В, 1C, ID, IE, 1F. От 32 и дальше: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2А, 2В, 2С… Эти файлы были созданы компьютером автоматически. Их странные имена — на самом деле шестнадцатеричные числа. Шестнадцатеричные
цифры не различают регистр букв (1Е означает то же самое, что и 1е). В
следующей таблице приведены первые 16 двоичных чисел и их
шестнадцатеричные эквиваленты: Чтобы
перейти от двоичной записи к шестнадцатеричной, мы сгруппируем биты в
четыре группы по четыре цифры, начиная с правого конца, а потом
преобразуем каждую четверку цифр в соответствии с предыдущей таблицей.
Если количество двоичных цифр не кратно четырем, мы дописываем слева
нули. Чтобы перейти от шестнадцатеричной записи к двоичной, мы
преобразуем каждую шестнадцатеричную цифру в ее двоичный эквивалент, как
показано в следующем примере. Шестнадцатеричное число принято обозначать так: 9F216 (с нижним индексом 16). Напомним соответствующие двоичные коды: 9F216 = 1001111100102 (здесь нижний индекс 2 указывает, что число выражено в двоичной системе). Давайте
теперь осуществим обратный процесс: число 11101001102 состоит из десяти
цифр. Мы дополняем его двумя нулями слева, чтобы получить 12 цифр,
которые можно сгруппировать по четыре. Преобразуем: 11101001102 = 0011 1010 0Н02 = 3А616. Какая
связь между шестнадцатеричными символами и 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.
|