bindec
(PHP 4, PHP 5, PHP 7, PHP 8)
bindec — Перетворює двійкове число на десяткове
Опис
bindec(string $binary_string): int|float
Повертає десятковий еквівалент двійкового числа binary_string
Функцияbindec() перетворює двійкове число в ціле число (int), а якщо розмір числа занадто великий, то число з плаваючою точкою (float).
Функция**bindec()**интерпретирует значения аргументаbinary_string
як беззнакові числа. Це тому, що функція bindec() розглядає старший біт ще один порядок величини, а чи не як біт знака.
Список параметрів
binary_string
Бінарний рядок для перетворення. Будь-які неприпустимі символи в рядку binary_string
будуть проігноровані без попередження. Починаючи з PHP 7.4.0, передача некоректних символів застаріла.
Увага
Параметр приймає лише рядки. Дані інших типів призведуть до непередбачуваного результату.
Значення, що повертаються
Повертає десяткове значення рядка binary_string
список змін
Версия | Опис |
---|---|
7.4.0 | Передача неприпустимих символів видає повідомлення про старіння. Результат, як і раніше, буде обчислений, якби неприпустимі символи не передавалися. |
Приклади
Приклад #1 Приклад використання функції bindec()****
Loading...
Результат виконання наведеного прикладу:
51
51
7
Приклад #2 Функцияbindec()** інтерпретує введення як беззнакове число**
Loading...
Результат виконання наведеного прикладу на 32-бітових машинах:
input: 1073741823
binary: 00111111111111111111111111111111
bindec(): 1073741823
input: 1073741824
binary: 01000000000000000000000000000000
bindec(): 1073741824
NOTE: Видите резкую смену значений? Смотрите в следующий раз...
input: 2147483647
binary: 01111111111111111111111111111111
bindec(): 2147483647
NOTE: PHP_INT_MAX
input: -2147483648
binary: 10000000000000000000000000000000
bindec(): 2147483648
NOTE: интерпретируется как увеличенное на единицу значение PHP_INT_MAX
input: -1
binary: 11111111111111111111111111111111
bindec(): 4294967295
NOTE: интерпретируется как самое большое целое без знака (unsigned integer)
Результат виконання наведеного прикладу на 64-бітних машинах:
input: 4611686018427387903
binary: 0011111111111111111111111111111111111111111111111111111111111111
bindec(): 4611686018427387903
input: 4611686018427387904
binary: 0100000000000000000000000000000000000000000000000000000000000000
bindec(): 4611686018427387904
NOTE: Видите резкую смену значений? Смотрите в следующий раз...
input: 9223372036854775807
binary: 0111111111111111111111111111111111111111111111111111111111111111
bindec(): 9223372036854775807
NOTE: PHP_INT_MAX
input: -9223372036854775808
binary: 1000000000000000000000000000000000000000000000000000000000000000
bindec(): 9223372036854775808
NOTE: интерпретируется как увеличенное на единицу значение PHP_INT_MAX
input: -1
binary: 1111111111111111111111111111111111111111111111111111111111111111
bindec(): 18446744073709551616
NOTE: интерпретируется как самое большое целое без знака (unsigned integer)
(18446744073709551615), но искажается из-за недостаточной точности float
Примітки
Зауваження :
Функція вміє конвертувати числа, які занадто великі, щоб вписатися в цілий тип даних (int) платформ, результатом обробки таких значень буде число з плаваючою точкою float.
Дивіться також
- decbin() - Переводить число з десяткової системи числення до двійкової
- octdec() - Переводить число з вісімкової системи числення до десяткової
- hexdec() - Переводить число з шістнадцяткової системи числення до десяткової
- base_convert() - Перетворює числа між довільними системами числення