Tag: 位操作

PHP中的无符号右移/零填充右移/ >>>(Java / JavaScript等效)

在将此标记为重复之前,请阅读以下内容,并检查我的代码 * 我的更新代码 ! 所以我的问题是,我必须实现Java / JavaScript’>>>’(无符号右移/零填充右移),但我无法以完全相同的方式工作。 我已经选择了我在SO和Web上找到的11个最有前途的实现(链接在代码中添加为注释)并添加了一些测试用例。 不幸的是,没有任何函数返回与Java / JS相同的响应到所有测试。 (也许其中一些只在32位系统上工作) 实时代码+ JS + PHP结果演示(点击运行): http://phpfiddle.org/main/code/bcv7-bs2q * http://phpfiddle.org/main/code/dpkw-rxfe 最接近的function是: // http://stackoverflow.com/a/27263298 function shr9($a,$b) { if($a>=0) return $a>>$b; if($b==0) return (($a>>1)&0x7fffffff)*2+(($a>>$b)&1); return ((~$a)>>$b)^(0x7fffffff>>($b-1)); } 和 // http://stackoverflow.com/a/25467712 function shr11($a, $b) { if ($b > 32 || $b < -32) { $m = (int)($b/32); $b = […]

如何(便宜地)计算n个可能元素的所有可能的长度-r组合

什么是计算n个可能元素的所有可能长度-r组合的最快方法,而不采用powershell技术或任何需要STL的东西? 在我的数据结构类中为我的最终项目开发Apriori算法时,我开发了一个使用位移和递归的有趣解决方案,我将在下面的答案中分享对任何感兴趣的人。 但是,这是实现这一目标的最快方法(不使用任何通用库)吗? 我出于好奇而不是其他任何问题,因为我目前的算法对我的目的来说效果很好。

Java运算符:| =按位OR并指定示例

我只是通过有人编写的代码,我看到了|=使用,查看Java运算符,它建议按位或分配操作,任何人都可以解释并给我一个例子吗? 这是读取它的代码: for (String search : textSearch.getValue()) matches |= field.contains(search);

按位乘法并在Java中添加

我有使用乘法和加法的方法,但我只是无法理解它们。 它们都来自外部网站而不是我自己的网站: public static void bitwiseMultiply(int n1, int n2) { int a = n1, b = n2, result=0; while (b != 0) // Iterate the loop till b==0 { if ((b & 01) != 0) // Logical ANDing of the value of b with 01 { result = result + a; // Update the result […]