В отличие от IPv4-адресов, которые выражены в десятичном формате с разделительными точками, IPv6-адреса представлены с помощью шестнадцатеричных значений. Вы уже видели использование шестнадцатеричного кода в панели Packets Byte программы Wireshark. В программе Wireshark шестнадцатеричная система используется для представления двоичных значений в кадрах и пакетах. Также шестнадцатеричная система исчисления используется для представления адреса управления доступом к среде передачи данных Ethernet (MAC).

Шестнадцатеричная нумерация

Шестнадцатеричная система исчисления («Hex») — это удобный способ представления двоичных значений. Так же, как в десятичной системе основанием является 10, в двоичной системе основанием является 2, основание шестнадцатеричной системы исчисления — 16.

Система с основанием 16 использует цифры от 0 до 9 и буквы от A до F. На рис. 1 показаны эквиваленты значений десятичной, двоичной и шестнадцатеричной систем. Это 16 уникальных комбинаций из четырёх битов, от 0000 до 1111. Шестнадцатеричная система исчисления очень удобна в использовании, поскольку любые четыре бита могут быть представлены одним шестнадцатеричным значением.

Общие сведения о байтах

Если 8 бит (байт) — это общепринятая бинарная группа, двоичный код 00000000—11111111 может быть представлен в шестнадцатеричной системе исчисления в качестве диапазона 00–FF. Для завершения 8-битного представления можно просмотреть ведущие нули. Например, двоичное значение 0000 1010 показано в шестнадцатеричной системе как 0A.

Представление шестнадцатеричных значений

Примечание. Важно отличать шестнадцатеричные значения от десятичных в отношении символов от 0 до 9.

Шестнадцатеричное значение обычно представлено в тексте значением, которое располагается после 0x (например, 0x73) или подстрочного индекса 16. В остальных, более редких случаях, за ним может располагаться H (например, 73H). Однако, поскольку подстрочный текст не распознаётся в командной строке или средах программирования, перед техническим представлением шестнадцатеричных значений стоит «0x» (нулевой Х). Так, приведённые выше примеры будут отображаться как 0x0A и 0x73 соответственно.

Шестнадцатеричные преобразования

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

Обладая определённым опытом, можно распознать шаблоны двоичных разрядов, совпадающих с десятичными и шестнадцатеричными значениями. На рис. 2 такие шаблоны показаны для выбранных 8-битных значений.