在php中获取一个大整数的低位64位

时间:2017-05-16 16:13:14

标签: php numbers integer long-integer

我需要在Java中模拟BigInteger到long的转换。 这意味着如果BigInteger太大而不适合长,只返回低位64位。 但我是Php的新手,所以我不知道该怎么做。

即。 来自java的393581355135911291782311我得到了1623579244298503335。

BigInteger result_long = new BigInteger("393581355135911291782311");

System.out.println("->" + result_long.toString());

我已经尝试过Brick \ Math库,但问题是只有方法“toInteger()”并且它不会给我低位64位。

1 个答案:

答案 0 :(得分:0)

当您将数字除以2^(bits + 1)时,低位就是余数。

您可以使用remainder这样的功能:

$modulo = BigInteger::of(2)->power(64+1);
$lower_order_bits = $result_long->remainder($modulo);