Правила перевода чисел из любой системы счисления в двоичную
Перевод в двоичную систему всегда сводится к одной идее: превратить число в десятичное, а затем представить его в виде суммы степеней двойки.
Но, строго говоря, перевод можно делать напрямую — без промежуточной десятичной формы. Разберём оба способа, чтобы было понятно, что работает в любых позиционных системах с основанием больше 2.
1. Универсальный подход: перевод через десятичную систему
Это самый понятный метод. Его чаще всего используют в учебниках и на практике. Шаги такие:
-
Преобразовать исходное число в десятичное.
Для этого каждая цифра умножается на основание исходной системы, возведённое в степень разряда.
Пример: 3A16 = 3 × 161 + 10 × 160 = 48 + 10 = 58. -
Перевести полученное десятичное число в двоичное.
Это делается обычным делением на 2 с фиксацией остатков.
Пример: 58₁₀ → 111010₂.
Метод работает для любой системы: восьмеричной, шестнадцатеричной, пятеричной.
2. Прямой перевод в двоичную систему (без промежуточного десятичного шага)
Этот способ ускоряет процесс, когда основание новой системы удобно раскладывается в степени двойки. Подходит, если исходная система имеет основание вида:
- 4 (2²);
- 8 (2³);
- 16 (2⁴);
- 32 (2⁵).
Тогда можно просто заменить каждую цифру её двоичным эквивалентом фиксированной длины.
Пример:
- восьмеричная цифра 7 → 111 (3 бита);
- шестнадцатеричная цифра A → 1010 (4 бита).
Так переводят, например, из восьмеричной в двоичную:
53₈ → 5 = 101, 3 = 011 → 101011₂
Или из шестнадцатеричной в двоичную:
2F₁₆ → 2 = 0010, F = 1111 → 00101111₂
3. Перевод из систем, где основание не связано с двойкой
Если основание — 3, 5, 6, 7, 9, 11, 12 и так далее, прямой перевод через блоки невозможен.
Здесь всегда нужен универсальный путь: сначала перевести число в десятичную форму, затем — в двоичную.
Возьмём число 132₅. Пятеричная система не связана с двойкой, поэтому прямой побитовый перевод невозможен — сначала нужно перейти в десятичную.
1 × 5² + 3 × 5¹ + 2 × 5⁰ = 25 + 15 + 2 = 42₁₀
Теперь переводим 42 в двоичную систему:
42₁₀ = 101010₂
Итог:
132₅ → 42₁₀ → 101010₂
Это не ограничение, а свойство степенных систем: у таких оснований нет удобного битового представления фиксированной длины.
Важно учитывать несколько принципов, которые позволяют избежать ошибок при переводе чисел в двоичную систему. Если исходная система позиционная, то её запись всегда переводится однозначно: каждая цифра имеет строго определённое значение, зависящее от разряда и основания.
Непозиционные системы — вроде римской или египетской — так не работают, поэтому перед переводом нужно сначала интерпретировать символы и получить обычное числовое значение, а уже потом переводить его в двоичную форму.
Ещё один момент, который нередко удивляет новичков: при переходе в двоичную систему запись почти всегда становится длиннее.
Это нормально — информация в двоичной системе передаётся меньшим количеством символов, значит, для представления того же числа потребуется больше цифр.
Правила перевода чисел в десятичную систему счисления
Перевод в десятичную систему проще всего понять, если помнить, что любое позиционное число — это сумма цифр, умноженных на степени основания. Основание показывает, во сколько раз каждый следующий разряд крупнее предыдущего. Поэтому алгоритм для любой позиционной системы всегда один: разложить число по разрядам и сложить результаты.
Например, в записи 3146 каждая цифра имеет своё место и вес:
- 3 — это количество шестёрок в квадрате;
- 1 — количество шестёрок в первой степени;
- 4 — количество единиц.
Запись в десятичной форме получается так:
3 × 6² + 1 × 6¹ + 4 × 6⁰ = 3 × 36 + 1 × 6 + 4 × 1 = 108 + 6 + 4 = 118₁₀
Тот же принцип работает в любой системе — двоичной, восьмеричной, тринадцатеричной, шестнадцатеричной. Например, шестнадцатеричное 2F16 разбирается так:
2 × 16¹ + 15 × 16⁰ = 32 + 15 = 47₁₀
Важно помнить только один нюанс: если алфавит системы включает буквы (как в шестнадцатеричной), каждая буква соответствует числовому значению: A — это 10, B — это 11 и так далее до F (15). В остальном процесс всегда одинаковый: определить основание, раскрыть разряды, сложить полученные величины.
Правила перевода чисел в шестнадцатеричную систему счисления
Шестнадцатеричная система удобна тем, что каждая её цифра соответствует четырём двоичным разрядам. Поэтому перевод в шестнадцатеричную систему обычно проходит двумя путями: через десятичную форму или напрямую через двоичную запись.
Перевод через десятичную систему
Этот способ подходит для чисел из любых систем счисления, независимо от основания. Алгоритм тот же, что и при переводе в двоичную, только делим на 16.
- Сначала переводим исходное число в десятичную систему.
- Затем делим полученное десятичное число на 16, фиксируя остатки.
- Остатки записываем в обратном порядке — от последнего к первому.
- Если остаток от 10 до 15, заменяем его буквами A–F.
Например, переведём 214₈ в шестнадцатеричную систему.
Сначала в десятичную:
2 × 8² + 1 × 8¹ + 4 × 8⁰ = 128 + 8 + 4 = 140₁₀
Теперь делим 140 на 16:
140 ÷ 16 = 8, остаток 12
12 соответствует букве C. Запись получается:
8C₁₆
Прямой перевод через двоичную систему
Этот способ особенно удобен, если исходная система — двоичная или восьмеричная.
Смысл в том, что каждые четыре бита образуют одну шестнадцатеричную цифру. Поэтому достаточно перевести число в двоичную форму, разделить её на группы по четыре бита и заменить каждую группу соответствующей цифрой шестнадцатеричного алфавита.
10111110₂ → группируем по четыре бита: 1011 1110. 1011₂ = B, 1110₂ = E.
Получаем BE₁₆.
На практике этот метод самый быстрый, потому что не требует промежуточных вычислений.
При переводе в шестнадцатеричную систему важно помнить несколько особенностей. Шестнадцатеричная запись почти всегда короче двоичной, потому что каждые четыре бита складываются в один символ — это естественное следствие того, что основание равно 16.
Цифры от 10 до 15 в такой системе записываются буквами A–F, чтобы удобно различать значения. Если двоичная запись числа не делится на группы по четыре бита, к началу просто добавляют нули — это нужно для выравнивания и не меняет само число.
Перевод из десятичной в двоичную систему счисления
Перевод из десятичной системы в двоичную основан на простом принципе: число последовательно делят на 2 и фиксируют остатки. Это один из самых наглядных способов увидеть, как десятичное число раскладывается на степени двойки. Такой метод всегда даёт точный результат и одинаково работает для любых целых чисел.
Алгоритм выглядит так: делим десятичное число на 2, записываем остаток (он всегда либо 0, либо 1), затем снова делим результат на 2, пока не получим ноль. Двоичное представление формируется в обратном порядке — от последнего остатка к первому.
Например, переведём 42₁₀ в двоичную систему:
42 ÷ 2 = 21, остаток 0;
21 ÷ 2 = 10, остаток 1;
10 ÷ 2 = 5, остаток 0;
5 ÷ 2 = 2, остаток 1;
2 ÷ 2 = 1, остаток 0;
1 ÷ 2 = 0, остаток 1.
Если выписать остатки снизу вверх, получится 101010₂. Это и есть двоичная форма числа 42.
Важно помнить: чем больше десятичное число, тем длиннее будет его двоичное представление. Это естественно, потому что основание двоичной системы меньше и для записи того же значения требуется больше разрядов.
Перевод из десятичной в шестнадцатеричную систему счисления
Перевод десятичного числа в шестнадцатеричную систему устроен так же, как и перевод в двоичную, только вместо деления на 2 используется деление на 16. Идея проста: мы постепенно «вынимаем» из числа шестнадцатеричные разряды, начиная с младшего, а затем записываем их в обратном порядке.
Алгоритм выглядит так: число делится на 16, фиксируется остаток, потом результат снова делится на 16 — и так до тех пор, пока частное не станет равным нулю. Остатки образуют шестнадцатеричное число, только читать их нужно снизу вверх. Если остаток оказывается между 10 и 15, он заменяется буквами A–F — это стандартные обозначения шестнадцатеричных цифр.
Для наглядности разберём короткий пример. Пусть нужно перевести число 250₁₀. Делим его на 16:
250 ÷ 16 = 15, остаток 10
Остаток 10 — это шестнадцатеричная A, а частное 15 — это F.
Так как на следующем шаге частное уже меньше 16, оно само становится старшим разрядом. Если выписать разряды по порядку, получится FA₁₆. Благодаря тому, что шестнадцатеричная система опирается на большие разряды, итоговая запись получается значительно короче десятичной — в этом и заключается её удобство при работе с большими числами и машинными данными.
Перевод из двоичной в восьмеричную систему счисления
Перевод из двоичной системы в восьмеричную — один из самых простых, потому что основание восьмеричной системы (8) равно 23. Это означает, что каждые три бита двоичной записи образуют ровно одну восьмеричную цифру. Никаких промежуточных вычислений в десятичной системе не требуется — достаточно сгруппировать разряды и заменить каждую тройку её восьмеричным значением.
Чтобы выполнить такой перевод, двоичное число разбивают на блоки по три бита, начиная справа, от младших разрядов. Если в старшем блоке не хватает разрядов, слева добавляют нули — это не изменяет значение числа, а только выравнивает запись. После этого каждая тройка битов переводится в число от 0 до 7: 000 соответствует 0, 001 — 1, 010 — 2 и так далее до 111, что даёт 7.
Короткий пример покажет, как это работает. Допустим, нужно перевести число 110101₂.Разобьём его справа налево: 110 101.
110₂ — это 6;
101₂ — это 5.
Значит, результат — 65₈.
За счёт такого соответствия по три бита на один разряд восьмеричная система долгое время была удобна для низкоуровневого программирования: она делает длинные двоичные последовательности компактными, но сохраняет прямую читаемую связь с битами.
Перевод из двоичной в шестнадцатеричную систему счисления
Перевод из двоичной системы в шестнадцатеричную устроен так же просто, как и перевод в восьмеричную, только здесь двоичная запись группируется не по три, а по четыре бита. Это связано с основанием шестнадцатеричной системы: 16 = 2⁴, поэтому каждая тетрада (группа из четырёх битов) точно соответствует одной шестнадцатеричной цифре — от 0 до 9 или от A до F. Никакого обращения к десятичной системе при этом не требуется: достаточно правильно разбить число на группы.
Процедура всегда одинакова. Двоичную запись делят на блоки по четыре разряда, начиная справа, от младшего бита. Если в старшем блоке не хватает символов, слева добавляют нули — это лишь выравнивание, оно не меняет числового значения. После разбиения каждая тетрада заменяется соответствующей шестнадцатеричной цифрой: 0000₂ даёт 0₁₆, 1001₂ превращается в 9₁₆, 1010₂ — в A₁₆, 1111₂ — в F₁₆ и так далее.
Допустим, перед нами число 101101011₂. Сначала выровняем его слева и разобьём на группы: 0010 1101 0111. Теперь переводим каждую тетраду:
0010₂ → 2
1101₂ → D
0111₂ → 7
Запись в шестнадцатеричной системе получится такой:
2D7₁₆
Благодаря этому соответствию двоичной и шестнадцатеричной записи шестнадцатеричная система стала стандартом в программировании: она позволяет представить большие битовые последовательности компактно, но без потери связи с исходными данными.
Таблица перевода систем счисления
Когда нужно быстро сравнить, как одно и то же число выглядит в разных системах счисления, удобнее всего опираться на небольшую таблицу. Она показывает, как меняется запись при переходе между двоичной, восьмеричной, десятичной и шестнадцатеричной системами — самыми распространёнными позиционными системами, с которыми чаще всего работают в программировании и математике. В таблице используются только базовые примеры, но по ним легко понять общую логику: при уменьшении основания запись удлиняется, а при увеличении — сокращается.
|
Десятичная |
Двоичная |
Восьмеричная |
Шестнадцатеричная |
|
0 |
0 |
0 |
0 |
|
1 |
1 |
1 |
1 |
|
2 |
10 |
2 |
2 |
|
5 |
101 |
5 |
5 |
|
7 |
111 |
7 |
7 |
|
8 |
1000 |
10 |
8 |
|
10 |
1010 |
12 |
A |
|
12 |
1100 |
14 |
C |
|
15 |
1111 |
17 |
F |
|
16 |
10000 |
20 |
10 |
|
25 |
11001 |
31 |
19 |
|
42 |
101010 |
52 |
2A |
|
73 |
1001001 |
111 |
49 |
|
255 |
11111111 |
377 |
FF |
Эти соответствия можно использовать как опорные точки при ручном переводе чисел. Если нужно преобразовать более длинные значения, принцип остаётся тем же: двоичные записи группируются по три бита для восьмеричной системы и по четыре — для шестнадцатеричной, а при переходе в десятичную используется разложение числа по степеням основания.
Ответим на ваши вопросы
Свяжемся с вами в течение 5 минут и проведём бесплатную консультацию по вопросам перехода на домашнее обучение
Позвоним с 8 до 21 в рабочие дни