Использование MAC-адресов является одним из наиболее важных аспектов технологии локальной сети Ethernet. MAC-адреса используют шестнадцатеричную систему счисления.

Шестнадцатеричный — это слово, которое используется и как существительное, и как прилагательное. При использовании отдельно (как существительное) оно означает шестнадцатеричную систему счисления. Шестнадцатеричная система счисления обеспечивает удобный способ для представления двоичных значений. Подобно тому, как десятичный формат является системой счисления с основанием 10, а двоичный — с основанием 2, шестнадцатеричный формат представляет собой систему счисления с основанием 16.

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

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

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

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

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

Шестнадцатеричная система счисления используется для представления MAC-адресов Ethernet и IP-адресов версии 6.

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

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

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