Вы , используя целые 32 бита.Просто выходные функции по умолчанию интерпретируют как целое число со знаком.Если вы хотите отобразить значение «raw», используйте:
printf("%u", -1); // %u for unsigned
Так как PHP обрабатывает целые числа, подписанные внутри, однако, вы можете использовать только битовую арифметику, но не сложение / умножение и т. Д. С ними - если вы ожидаетевести себя как неподписанные целые.