7
%を正しく使用して、ネガティブな結果を得られないようにするにはどうすればよいですか?php%(mod関数)は大量に負になります。どのようにそれを取り除く?
<?php
$x = 1103515246*12345;
echo $x." ".decbin($x)."</BR>";
$y = $x % (1 << 15);
echo $y." ".decbin($y)."</BR>";
?>
出力:
13622895711870 11010011110111000001011001111110
-27010 11111111111111111001011001111110
が
$y = bcmod($x,(1 << 15));
を解決される問題を解決します。迅速なサポートをありがとう!それは私の最初の質問でした!
私は(第2のエコーのため5758)異なる結果を得るために
%
てみ使用
BCMath
を使用するときにということです。あなたはどのPHPのバージョンを使用していますか? –@ChrisHanson、私はあなたが64butシステムを持っていると思います – RiaD
[PHPが整数を処理する方法](http://php.net/manual/en/language.types.integer.php)を読んでみてください。 * "PHPが整数型の境界を超えた数に遭遇した場合、代わりに浮動小数点型として解釈されます。また、整数型の境界を越える数値を返す演算は、代わりに浮動小数点数を返します" * – Matt