Я использую 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;
для каждой переменной в случае переполнения?
Это становится довольно загроможденным, постоянно добавляя маску к каждой переменной на основе расчета.
Спасибо
Задача ещё не решена.
Других решений пока нет …