I found a snippet of code on the PHP manual which packs 64 bit integers. APparently this is necessary because
pack() always treats numbers as 32 bit integers even on 64 bit architectures.
I don't understand what is happening with the use of $left and $right as well has notation like >>32. Searching that didn't find anything useful. Can anyone explain what is happening in this script?
<?php $big = 5000000000; $left = 0xffffffff00000000; $right = 0x00000000ffffffff; $l = ($big & $left) >>32; $r = $big & $right; $good = pack('NN', $l, $r);