Сообщество Engee

Перевод в двоичную систему

Автор
avatar-maximsidorovmaximsidorov
Notebook

Перевод чисел в двоичную систему счисления

Этот пример демонстрирует, как в языке программирования Julia можно преобразовать десятичные числа в двоичную систему счисления и форматировать вывод.

Введение

Алгоритм работы с двоичными числами, описанный ниже, позволяет переводить числа из десятичной системы счисления в двоичную. Это фундаментальный процесс в информатике, так как большинство вычислений на аппаратном уровне происходят именно над двоичными представлениями данных. Двоичное представление удобно для анализа битовой структуры чисел, побитовых операций и понимания основ компьютерных вычислений.

Основная часть

# Для использования макроса @printf, нужен модуль Printf
import Pkg; Pkg.add("Printf")

# Подключение модуля Printf, который обеспечивает printf-подобный вывод
using Printf
   Resolving package versions...
   Installed UnicodePlots ─ v3.8.1
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`

Простое преобразование чисел в двоичный вид без заполнения

Перебираем числа 0, 5, 50 и 9000

for n in (0, 5, 50, 9000)
    # Выводим число и его двоичное представление в формате "%6i → %s"
    @printf("%6i%s\n", n, string(n, base=2))  # base=2 означает, что мы хотим получить двоичное представление
end
     0 → 0
     5 → 101
    50 → 110010
  9000 → 10001100101000

Преобразование с добавлением ведущих нулей (padding)

Здесь используется аргумент pad, чтобы гарантировать минимальную ширину строки, заполняя её слева нулями.

# Те же самые числа, но теперь они выводятся с дополнением до 20 знаков в двоичном виде
for n in (0, 5, 50, 9000)
    # Используется функция string(..., pad=N), где N — минимальное количество символов
    @printf("%6i%s\n", n, string(n, base=2, pad=20))  # pad=20 гарантирует длину строки не менее 20 символов
end
     0 → 00000000000000000000
     5 → 00000000000000000101
    50 → 00000000000000110010
  9000 → 00000010001100101000

Заключение

Мы рассмотрели простой способ перевода целых чисел из десятичной системы в двоичную с использованием встроенной функции string() и форматированного вывода через @printf. Также узнали, как указать минимальную длину строки при помощи параметра pad, заполняя недостающие знаки нулями. Этот подход может быть полезным при работе с данными, требующими анализа побитовой структуры или при реализации логики, связанной с двоичными масками. Такие знания будут особенно актуальны при изучении программирования микроконтроллеров, сетевых протоколов или работы с данными на низком уровне.

Пример разработан с использованием материалов Rosetta Code