crc32
を32ビットPHPシステムで呼び出すと(PHP_INT_SIZE
は4)、結果の整数値は負の値になります。私が32または64ビットシステムである場合でも、数値から正しいモジュロ値を取得するにはどうすればよいですか?PHPで符号付き整数から正しいモジュロ値を取得するにはどうすればよいですか?
function checksumChar($str) {
if(PHP_INT_SIZE > 4) {
return crc32($str) % 26;
} else {
// ???
}
}
問題は潜在的な負の数ですか?結果として得られるcrc32()の番号で単にabs()を呼び出し、リマインダーを取ることができます。 –
@AlexHG 'abs'の問題は、例えば' -137262718'と '4157704578'が' crc32( "Hello") 'と同じ結果になるので、32ビットと64ビットのシステムで異なる戻り値を与えることです。異なるモジュロで異なる数である。 – chiborg