Decbin: примеры (PHP)

Преобразование десятичных чисел в двоичные с использованием функции decbin
Раздел: Преобразование типов/форматов
decbin(int $num): string
Функция decbin

Функция decbin преобразует десятичное целое число в строку, содержащую его двоичное представление. Она используется в ситуациях, требующих работы с битовыми операциями, двоичной арифметикой, анализом данных на уровне битов, а также для отображения числовых значений в двоичном формате.

Аргументы функции

Функция принимает единственный аргумент:

  • $num (int) — десятичное целое число для преобразования. Если передано число с плавающей точкой, оно будет приведено к целому типу. Для отрицательных чисел возвращается двоичное представление в дополнительном коде (зависит от архитектуры системы).
Короткие примеры использования
Преобразование положительных чисел
echo decbin(10);
1010
echo decbin(255);
11111111
Обработка отрицательных чисел
echo decbin(-10);
11111111111111111111111111110110 // Результат на 64-битной системе
Приведение float к int
echo decbin(15.9);
1111
Похожие функции в PHP
  • bindec() — выполняет обратное преобразование из двоичной строки в десятичное число.
  • base_convert() — конвертирует числа между произвольными системами счисления (от 2 до 36). Удобна для преобразований, выходящих за рамки десятичной и двоичной систем.
  • sprintf() с форматным спецификатором %b — позволяет форматировать вывод двоичного числа, например, дополняя нулями слева. Функция decbin предпочтительна для простого и быстрого получения двоичной строки, в то время как sprintf лучше подходит для форматированного вывода.
Аналоги в других языках
Python

Функция bin() возвращает строку с префиксом '0b'. Для отрицательных чисел возвращается знаковое представление.

print(bin(10))
0b1010
print(bin(-10))
-0b1010
JavaScript

Метод toString(2) объекта Number преобразует число в двоичную строку. Для отрицательных чисел возвращается знаковое представление с префиксом '-'.

console.log((10).toString(2));
1010
console.log((-10).toString(2));
-1010
MySQL

Функция BIN() возвращает строковое представление двоичного значения. Работает только с целыми числами типа BIGINT.

SELECT BIN(10);
1010
Типичные ошибки
Передача нечислового аргумента

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

echo decbin(\"abc\");
0
Ожидание фиксированной длины вывода

Функция не дополняет результат нулями слева. Для получения строки фиксированной длины требуется дополнительное форматирование.

echo decbin(1); // Ожидание 8-битного представления
1 // Фактический результат без ведущих нулей
Изменения в PHP 8

В PHP 8.0 были улучшены согласованность и предсказуемость приведения типов. Функция decbin теперь более строго обрабатывает нечисловые строки, преобразуя их в ноль, тогда как в некоторых ранних версиях поведение могло отличаться. Ключевая логика работы функции осталась неизменной.

Расширенные примеры применения
Форматирование двоичного вывода

Комбинация с str_pad для дополнения нулями до заданной битовой длины.

$binary = decbin(42);
echo str_pad($binary, 16, \"0\", STR_PAD_LEFT);
0000000000101010
Обработка битовых масок

Проверка отдельных битов числа с помощью преобразования в двоичную строку и доступа по индексу.

$permissions = 6; // Двоичное 110
$binary = decbin($permissions);
$thirdBit = $binary[-3] ?? '0'; // Третий бит справа
echo \"Третий бит: \" . $thirdBit;
Третий бит: 1
Создание таблицы преобразований

Генерация массива соответствий десятичных чисел их двоичным представлениям.

$table = [];
for ($i = 0; $i <= 16; $i++) {
    $table[$i] = decbin($i);
}
print_r($table);
Array
(
    [0] => 0
    [1] => 1
    [2] => 10
    [3] => 11
    ...
    [16] => 10000
)

PHP decbin function comments

En
Decbin Decimal to binary