Лучший способ маскировать целое число как 32-разрядное? - PullRequest
0 голосов
/ 05 октября 2018

Я использую 64-битную установку PHP, и, насколько я понимаю, нет способа специально объявить переменную как 32-битную unsigned int.

Используя этот код в качестве примера:

$test1 = 0x5BE0CD19;
$test2 = 0x3587272B;
$test3 = 0x1F85C98C;
$test4 = 0x428A2F98;
$test5 = 0x61626380;
$test6 = ($test1 + $test2 + $test3 + $test4 + $test5);

Дает мне результат 0x154da50e8

В настоящее время я делаю следующие операции для маскировки переменных как 32-битных:

$test6 &= (1 << 32) - 1;

Я получаю желаемый результат: 0x54da50e8

По соображениям производительности мне было интересно, есть ли лучший способ сделать это без необходимости использовать &= (1 << 32) - 1; для каждой переменной всобытие переполнения?Это становится довольно загроможденным, постоянно добавляя маску к каждой переменной на основе расчета.

Спасибо

...