Числа в 16 системе счисления
Данный материал посвящен шестнадцатеричной системе счисления. Вы узнаете, из каких символов она состоит, как выполнять перевод чисел в 16-ю систему и из нее, а также где она применяется на практике. Статья будет полезна программистам, студентам технических специальностей и всем, кто изучает основы информатики.
Результат:
Пошаговое преобразование:
Что такое 16-я система счисления?
Шестнадцатеричная система счисления (или hex) – это позиционная система с основанием 16. Это означает, что для записи чисел в ней используется 16 уникальных символов: десять арабских цифр от 0 до 9 и шесть первых букв латинского алфавита: A, B, C, D, E, F.
Здесь цифры A, B, C, D, E, F соответствуют десятичным значениям 10, 11, 12, 13, 14 и 15 соответственно. Каждая позиция в шестнадцатеричном числе имеет вес, равный степени числа 16. Например, число 2A5₁₆ раскладывается так:
2·16² + 10·16¹ + 5·16⁰ = 2·256 + 10·16 + 5·1 = 512 + 160 + 5 = 677₁₀.
Зачем нужна шестнадцатеричная система?
Основное применение 16-я система нашла в вычислительной технике и низкоуровневом программировании. Её популярность обусловлена лёгким и компактным представлением двоичных данных, которые являются основой работы любого компьютера.
Одна шестнадцатеричная цифра (0-F) точно соответствует четырём двоичным цифрам (битам), которые называют тетрадой или нибблом. Это делает hex-запись в два раза короче двоичной и гораздо более удобной для чтения и анализа человеком. Например, длинный 32-битный адрес 11011100101011011110011111111011₂ гораздо проще запомнить и прочитать как DCA5F7FB₁₆.
Как переводить числа в 16-ю систему счисления и обратно
Перевод между системами счисления – ключевая операция при работе с низкоуровневыми данными. Рассмотрим самые частые случаи.
Из 16-й в 10-ю систему
Для этого используется метод разложения по степеням основания, как в примере выше.
Пример: Перевести B3F₁₆ в десятичную систему.
- Записываем значение каждой цифры: B = 11, 3 = 3, F = 15.
- Раскладываем по степеням 16, начиная справа (с нулевой):
11·16² + 3·16¹ + 15·16⁰ - Выполняем вычисления:
11·256 + 3·16 + 15·1 = 2816 + 48 + 15 = 2879₁₀.
Из 10-й в 16-ю систему
Здесь используется метод деления на основание новой системы (16) с записью остатков.
Пример: Перевести 542₁₀ в шестнадцатеричную систему.
- Делим 542 на 16:
542 / 16 = 33(остаток14, то естьE). - Делим частное 33 на 16:
33 / 16 = 2(остаток1). - Делим частное 2 на 16:
2 / 16 = 0(остаток2). - Записываем остатки в обратном порядке:
21E₁₆.
Из 2-й в 16-ю систему
Это самый простой и частый перевод, который выполняется “в уме”.
Пример: Перевести 111010110₂ в шестнадцатеричную систему.
- Разбиваем двоичное число на группы по 4 бита (тетрады) справа налево. Если в самой левой группе меньше 4 бит, дополните её нулями слева:
0001 1101 0110. - Каждую тетраду переводим в шестнадцатеричную цифру:
0001₂ = 1₁₆1101₂ = 13₁₀ = D₁₆0110₂ = 6₁₆
- Собираем результат:
1D6₁₆.
Из 16-й в 2-ю систему
Выполняется обратная операция: каждая шестнадцатеричная цифра заменяется её 4-битным двоичным эквивалентом.
Пример: Перевести 4FA₁₆ в двоичную систему.
- Заменяем каждую цифру:
4₁₆ = 0100₂F₁₆ = 15₁₀ = 1111₂A₁₆ = 10₁₀ = 1010₂
- Соединяем группы и убираем ведущие нули:
10011111010₂.
Таблица соответствия систем счисления
Для быстрого перевода удобно использовать следующую таблицу, охватывающую все возможные значения для одной тетрады.
| Десятичная | Двоичная (4 бита) | Шестнадцатеричная |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Практическое применение
Помимо программирования, вы можете встретить шестнадцатеричные числа в следующих областях:
- Веб-разработка: Коды цветов в CSS и HTML записываются в hex-формате, например,
#FFFFFF(белый) или#FF5733(оранжевый). Первые два символа отвечают за красный, следующие два – за зелёный, последние – за синий. - Mac-адреса: Физические адреса сетевых устройств записываются как шесть пар шестнадцатеричных цифр, разделённых двоеточиями или дефисами (например,
3D:F2:C9:A6:B3:4F). - Отладка и анализ памяти: При анализе дампов памяти или сетевых пакетов данные представляются в виде последовательности hex-значений для удобства восприятия.
Заключение
Шестнадцатеричная система счисления – это не просто математическая абстракция, а важнейший инструмент для работы с цифровыми данными. Она служит мостом между человеческим восприятием и машинным языком (двоичным кодом), позволяя эффективно кодировать, читать и отлаживать информацию. Понимание принципов её работы и правил перевода является фундаментальным навыком для любого IT-специалиста.
Часто задаваемые вопросы
Как перевести число из 16-й системы в 10-ю?
Запишите число в виде суммы произведений каждой цифры на 16 в степени её позиции (начиная с нуля справа налево). Например, A9₁₆ = 10·16¹ + 9·16⁰ = 160 + 9 = 169₁₀.
Как перевести число из 2-й системы в 16-ю?
Разбейте двоичное число на группы по 4 цифры (тетрады), начиная справа. Каждую тетраду замените соответствующей шестнадцатеричной цифрой. Например, 10101100₂ = 1010 1100 = A C₁₆.
Почему в 16-й системе используются буквы?
Основание системы равно 16, а привычных арабских цифр всего 10 (0-9). Для обозначения оставшихся шести значений (10, 11, 12, 13, 14, 15) используются первые шесть букв латинского алфавита: A, B, C, D, E, F.
Что означает префикс 0x перед числом?
Префикс 0x (или 0X) – это общепринятое в программировании обозначение того, что последующее число записано в шестнадцатеричной системе. Например, 0xFF означает 255 в десятичной системе.