no wszystko dokładnie tak samo tylko że
"0x125641ab32de" to liczba 48 bitowa, więc powyższe zadziała tylko jeśli php będzie w wersji 64 bitowej
za to z mniejszymi liczbami jest wszystko ok
http://ideone.com/GcOeRF
jeśli chcesz odebrać dane binarne to tylko z POSTa bo w GET raczej binarnie nic nie przejdzie
odbierz, a potem zdekoduj do intów (najlepiej nie większych niż 32 bitowe) funkcją
unpack()
http://ideone.com/0QQiZk
$binary = "\x00\x00\x12\x56\x41\xab\x32\xde"; // musisz wyrównać zerami dane do wielokrotności 32 bitów
$decoded = unpack("N*", $binary);
// w $decoded masz teraz tablice dwoch longow 32 bitowych unsigned big-endian
// $decoded[1] = 0x00001256;
// $decoded[2] = 0x41ab32de;
$a = $decoded[1];
$b = ($a & 0xfff0) >> 4;
echo $b . ' (0x'.dechex($b) . ')'; // 293 (0x125)
Chcę tego użyć do odkodowania liczby BCD(http://pl.wikipedia.org/wiki/Kod_BCD) z własnym podziałem bitów(np godzina [0-23] dostanie 5bitów), oszczędność bitów(tak, muszę oszczędzić je jakoś oszczędzić).
jeśli na coś co przyjmuje wartości od 0 do 23 przydzielasz 5 bitów, które mogą przyjąć wartości od 0 do 31 to nie jest to "oszczędność bitów" tylko marnotrawienie bitów