Операции преобразования битов в PHP - PullRequest
2 голосов
/ 01 июня 2010

Мне нужно выполнить преобразование на уровне битов для переменных в PHP. Более подробно, у меня есть битовый поток, который аппаратно читается как целое число, и мне нужно выполнить некоторые операции над битами, чтобы превратить его в то, чем он фактически должен быть (float). Я должен сделать это несколько раз для разных форматов, и мне нужна функциональность

  • Возможность выбирать и перемещать отдельные биты в переменной
  • Возможность статически приводить переменные одного типа к другому (т. Е. Int to float)

Я знаю, что php изначально поддерживает побитовые операции И, ИЛИ и т. Д. И операции сдвига, но мне было интересно, если:

  • возможно, в php уже есть библиотека, которая делает подобные вещи
  • Я бы лучше делегировал вычисления на какой-нибудь другой язык

Спасибо

Ответы [ 3 ]

2 голосов
/ 01 июня 2010

Это pack и unpack , что вы хотите?

0 голосов
/ 01 июня 2010

Для преобразования битового потока во все, что вам нужно, используйте unpack () .

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

0 голосов
/ 01 июня 2010
...