问题标签 [bitwise-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
124390 浏览

java - 移位在 Java 中是如何工作的?

我有这样的声明:

假设 byte 的位值为x00101011。结果是x>>2什么?

我该如何编程,有人可以解释我在做什么吗?

0 投票
2 回答
616 浏览

java - Bitwise AND (&) expression in Java

I am debugging code that has in it expr1 & expr2 where expr1 has a side effect that affects expr2 evaluation result. I suspect that expr2 gets evaluated before expr1, since JLS guarantees left-to-right evaluation for &&, but not necessarily for &. I also suspect that change of evaluation order may be a result of optimization performed by HotSpot (we're running Java 6u20). Do you know if HotSpot can make such an optimization? Better yet, provide any pointers to documentation that either support or eliminate the suspicion. Thanks in advance.

EDIT: Thanks for those suggesting to rewrite the code so it's both correct and readable - you're right, but I already did, so it's not what I am looking for. Unfortunately it is hard to test the change, which is why I'm asking the question here.

0 投票
1 回答
186 浏览

bitwise-operators - J 是否有内置的按位异或原语?

我知道 J 有一个像 xor 一样工作的原语~:,但这确实是not equal to (!=)

我可以通过说:在动词定义中使它像按位异或一样xor =: 4 : '#.((#:x)~:(#:y))'起作用,但这仅在数字的二进制表示长度相同时才有效。除了制作一个完整的动词之外,我还能做些什么,该动词使用 if 语句来制作相同大小的列表以进行按位异或。

如果你想知道,我问是因为我想重新创建我在 J 中用 Java 工作的 Nim 求解程序。

0 投票
4 回答
582 浏览

java - Java中的“|=”是什么意思?

请注意,我的问题不是关于,!=而是|=

使用示例在这里

我认为这x |= yx = x | y但我找不到确认文件并想确定

谢谢

0 投票
4 回答
24831 浏览

objective-c - 了解按位与运算符

我一直在 Kochan 的书“Objective-C 编程”中阅读有关 Objective-C 中的位运算符的内容。

我对这部分感到非常困惑,尽管到目前为止我已经真正理解了大多数其他呈现给我的东西。

这是书中的一段话:

按位与运算符

按位与经常用于屏蔽操作。也就是说,可以很容易地使用该运算符将数据项的特定位设置为 0。例如,语句

将 w1 的值与常数 3 按位与运算分配给 w3。这与将 w 中的所有位设置为相同的效果,除了最右边的两位为 0 并保留来自 w1 的最右边的两位。

与 C 中的所有二进制算术运算符一样,二进制位运算符也可以通过添加等号用作赋值运算符。该声明

因此执行与以下相同的功能:

此外,它还具有将字的最右边四位以外的所有位设置为 0 的效果。在执行按位运算时使用常量时,以八进制或十六进制表示法表示常量通常更方便。

好的,这就是我想要理解的。现在,我对几乎整个概念都感到非常困惑,如果有人愿意帮助我,我只是想澄清一下。

当本书现在引用“设置所有位”时,所有位..究竟是什么。这不只是二基数的 0 或 1,换句话说,二进制吗?

如果是这样,为什么在第一个示例中,除了“最右边的 2”之外的所有位都为 0?是 2 因为它是 3 - 1,从我们的常数中取 3?

谢谢!

0 投票
3 回答
1807 浏览

asp-classic - 在 ASP 中,位运算符左移和右移

有人知道左移和右移运算符样本吗?我是 ASP 新手。我发现了位运算符,例如 AND,OR,NOT only..

0 投票
3 回答
3957 浏览

ruby - Ruby 中的右移位操作

Ruby 中有 Rotate Bits 吗?

或者我该怎么做。

谢谢

0 投票
3 回答
452 浏览

php - 按位运算错误?

我正在开发一个有趣的网站,并且我正在尝试实现基于位运算符的目录访问控制。
我已经定义GUEST = 1, GROUP1 = 15 and GROUP2 = 23

如果我比较

但如果我定义GUEST,GROUP1GROUP2:

没有GROUP1问题:

我哪里错了?一些建议?谢谢。


我发现了一些非常奇怪的东西:我的 GUEST、GROUP1 和 GROUP2 在一个 ini 文件中声明,我通过函数 parse_ini_file(self::$fileName, true); 解析该文件。一个班级内。在我解析了文件后,我递归地定义了在 [DEFINE] 部分下定义的键=值(一个简单的技巧)。如果我在那里评论我的 GROUP2=23 定义并在当前脚本 (GROUP2 & GUEST) 中声明它,则返回 1!

0 投票
5 回答
4372 浏览

c++ - C++:联合与位运算符

我有两个char,我想将它们按位“缝合”在一起。
例如:

所以,我首先尝试的是按位运算符:

但这不起作用:我得到一个short等于c2... (1) 为什么?
(但是:c1并且c2在我的真实应用程序中是负数......也许这是问题的一部分?)

所以,我的第二个解决方案是使用union

这就像我想要的那样工作......我认为

(2) 最好/最快的方法是什么?

谢谢!

0 投票
1 回答
2048 浏览

sql - MySQL 在使用按位函数查询 BIT 字段时不使用索引

我的 MySQL 表中有一个 BIT 类型的字段。我想使用位值存储记录的状态,例如:

每条记录一次可以有多个状态。对于状态 1 和状态 3,值将是 1 + 4 = 5。我可以使用以下方法查询表中所有状态为 3 的记录:

我有索引statuses,但EXPLAIN告诉我没有使用索引。我可以在这种情况下使用索引吗?

PS 使用单独的多对多链接表是更规范的解决方案,但我希望有更多的“扁平”结构。