php Bitwise与Bigints的操作

时间:2014-02-01 22:31:18

标签: php

我正在尝试在2 Bigints之间进行AND操作 然后计算二进制表示的位数1。

示例:

$ a和$ b是MySql查询的重要提示。

$ result = countones($ a& $ b);

with:

function countones($n){
  $c =0;
  while($n){
    $c += $n&1;
    $n = $n>>1;
  }
  return $c;
}

Ints没问题。我试过使用gmp函数,但我的尝试失败了...我一定错过了什么......

1 个答案:

答案 0 :(得分:0)

您可以在SQL中将它们作为字符串进行CAST,然后将$n&1更改为substr($n,-1)&1,将$n >>= 1;更改为$n = substr($n,0,-1);