Вы можете сделать это, используя BC Math (Произвольная математика точности):
BC Math позволяет выполнять математические операции над числами. Разница между использованием арифметических операторов и использованием математики BC заключается в том, что вместо сохранения числа в виде целого числа или числа с плавающей запятой математика BC возвращает число в виде строки.
http://php.net/manual/en/ref.bc.php
PHP должен быть скомпилирован с BC Math; однако большинство установок PHP должно иметь это.
К сожалению, вы не можете выполнять побитовые операции со строками, и BC Math не имеет встроенных побитовых функций. Тем не мение; после небольшого поиска в Google, я нашел следующий пример кода, скопировал и вставил его ниже:
function bitValue($no) { return bcpow(2, $no); }
function bitSet($no, $value) {
$tmp = bcmod($value, bitValue($no+1));
return bccomp(bcsub($tmp, bitValue($no)), 0)>= 0;
}
echo bitSet(49, bitValue(48)) ."\n";
echo bitSet(48, bitValue(48)) ."\n";
echo bitSet(47, bitValue(48)) ."\n";
(Кредит Hernst42)