Какой префикс для бинарного в PHP? - PullRequest
31 голосов
/ 24 марта 2010

Это ни 0x, ни 0; что это? Есть ли?

Ответы [ 4 ]

49 голосов
/ 15 ноября 2011

Новое в PHP 5.4 - двоичный префикс, 0b. Подумайте о переносимости при его использовании, хотя; Вы должны быть в состоянии гарантировать, что сервер работает на PHP 5.4 +.

46 голосов
/ 24 марта 2010

Начиная с PHP 5.4+, префикс для двоичного числа:

0b

<ч /> Для более ранней версии такого префикса не существует. Вместо этого вы можете использовать 0x для шестнадцатеричного.

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

Тем не менее, если вам действительно нужно записать значения с использованием двоичного кода до PHP 5.4, вы можете использовать функцию bindec, которая принимает строку, содержащую двоичный файл, и возвращает соответствующее значение.

Например, следующая часть кода:

echo bindec('10011');

Получит вас:

19

Но учтите, что вы не должны делать это слишком часто: вызов функции для выполнения этого при каждом выполнении скрипта очень плохо сказывается на производительности ^^
Вместо этого, действительно лучше записать ваши значения в шестнадцатеричном формате, где каждая цифра кодирует 4 бита.

2 голосов
/ 24 марта 2010

В PHP 5.4+ фактически есть префикс: 0b.

Текущая информация в PHP Docs :

Двоичные целочисленные литералы доступны с PHP 5.4.0.

Чтобы использовать восьмеричное обозначение, перед числом ставьте 0 (ноль). Чтобы использовать шестнадцатеричное обозначение, перед числом должно быть 0x. Чтобы использовать двоичную запись, перед числом введите 0b.


24 марта 2010 г. в 11:31 (оригинальный ответ):

Я не думаю, что есть один. Префикс 0 если для восьмеричного и 0x для шестнадцатеричного.

С PHP документы :

Целое число может быть указано в десятичной (основание 10), шестнадцатеричной (основание 16) или восьмеричной (основание 8) нотации, необязательно с предшествующим знаком (- или +).

Чтобы использовать восьмеричные обозначения, перед числом ставьте 0 (ноль). Чтобы использовать шестнадцатеричное обозначение, перед числом должно быть 0x.

1 голос
/ 24 марта 2010

Проверьте руководство : PHP поддерживает только десятичные, шестнадцатеричные и восьмеричные целочисленные обозначения, но вместо этого вы можете использовать bindec () .

Кроме того, помните, что каждая шестнадцатеричная цифра представляет 4 бита, поэтому легко преобразовать двоичную запись в шестнадцатеричную. То же самое верно для восьмеричного, но по разным причинам он используется на практике реже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...