我正在尝试在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函数,但我的尝试失败了...我一定错过了什么......
答案 0 :(得分:0)
您可以在SQL中将它们作为字符串进行CAST,然后将$n&1
更改为substr($n,-1)&1
,将$n >>= 1;
更改为$n = substr($n,0,-1);
。