Decbin: примеры (PHP)
decbin(int $num): stringФункция decbin преобразует десятичное целое число в строку, содержащую его двоичное представление. Она используется в ситуациях, требующих работы с битовыми операциями, двоичной арифметикой, анализом данных на уровне битов, а также для отображения числовых значений в двоичном формате.
Функция принимает единственный аргумент:
- $num (int) — десятичное целое число для преобразования. Если передано число с плавающей точкой, оно будет приведено к целому типу. Для отрицательных чисел возвращается двоичное представление в дополнительном коде (зависит от архитектуры системы).
echo decbin(10);
1010
echo decbin(255);
11111111
echo decbin(-10);
11111111111111111111111111110110 // Результат на 64-битной системе
echo decbin(15.9);
1111
- bindec() — выполняет обратное преобразование из двоичной строки в десятичное число.
- base_convert() — конвертирует числа между произвольными системами счисления (от 2 до 36). Удобна для преобразований, выходящих за рамки десятичной и двоичной систем.
- sprintf() с форматным спецификатором
%b— позволяет форматировать вывод двоичного числа, например, дополняя нулями слева. Функция decbin предпочтительна для простого и быстрого получения двоичной строки, в то время как sprintf лучше подходит для форматированного вывода.
Функция bin() возвращает строку с префиксом '0b'. Для отрицательных чисел возвращается знаковое представление.
print(bin(10))
0b1010
print(bin(-10))
-0b1010
Метод toString(2) объекта Number преобразует число в двоичную строку. Для отрицательных чисел возвращается знаковое представление с префиксом '-'.
console.log((10).toString(2));
1010
console.log((-10).toString(2));
-1010
Функция BIN() возвращает строковое представление двоичного значения. Работает только с целыми числами типа BIGINT.
SELECT BIN(10);
1010
При передаче строки, которая не может быть преобразована в число, функция вернет двоичное представление нуля.
echo decbin(\"abc\");
0
Функция не дополняет результат нулями слева. Для получения строки фиксированной длины требуется дополнительное форматирование.
echo decbin(1); // Ожидание 8-битного представления
1 // Фактический результат без ведущих нулей
В 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
)