问题标签 [bitwise-or]
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.
python - 按位或在类对象上
在以下代码中使用按位或运算符如何防止被覆盖?我知道按位或如何处理数字,但我无法理解它在这里的用途:item.flags() | QtCore.Qt.ItemIsEditableQtCore
item.flags
java - java - 使用后短路|
我在 dmoj 上做了一个问题,它说有一个短路错误。
我在另一篇文章中读到,为了防止短路错误,请使用 single|
而不是||
. 但是,当我将 if 语句切换为使用 single|
时,它仍然给了我同样的错误。
c++ - (C++)在按位或运算时出现错误“非法指令(核心转储)”
所以,我仍在学习按位运算,无法弄清楚为什么会发生这个错误。我已经用谷歌搜索了它,似乎在弄乱堆栈时会发生此错误,或者在某些情况下,它与 CPU 架构有关。我尝试使用不同的标志进行编译,这些标志应该有帮助,但我无法让它工作。
这是快速的代码:
并且错误“非法指令(核心转储)”发生在该行
corners |= (material << i);
这是调试器的输出:
我将给出这个循环的输出(它永远不会超过第一个循环)。这是 couts 的代码:
这是输出:
我将非常感谢有人能给我关于为什么会发生这种情况的任何见解,如果有明确的原因,如何解决问题。
谢谢!
javascript - JS 按位 - Math.random() * 2 被解释为 0 和 1 以进行按位或 (|) 操作的规则是什么?
为什么要在http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/上学习 bind() 方法,我遇到了一个看起来像这样的有趣计算:
试图了解什么 | 确实,我遇到了 JavaScript 位运算符(https://www.w3schools.com/js/js_bitwise.asp)。
我知道这(Math.random () * 2 | 0)
是一个按位或运算。
我掌握了Math.random() * 2
有时按位值给出 0 或 1 的值(例如,0.06218657045669751 被解释为 1)。我写了一个函数来检查,在什么情况下Math.random() * 2
计算结果被视为0,在什么情况下被视为1:
结果没有给我任何问题的答案。因为如果Math.random() * 2
给出 1.5337258727722651 它也可以解释为 1 和 0。
这种解释是随机的还是背后有任何逻辑?
java - 如何在 Kotlin 中使用 Java 的位运算符?
Java 有二元或 |
和二元与 &
运算符:
它们似乎不适用于 Kotlin:
如何在 Kotlin 中使用 Java 的位运算符?
c - 将 char 设置为所有真位
我正在尝试将 char 中的所有位设置为 true。
当 foo 全为 0 时,我得到 11000111。当 foo == 00000110 时,它打印 11001111;这里出了什么问题?
java - java如何处理位运算符的结果
我想知道java如何发现按位运算的结果是-ve还是+ve?
java如何知道 1 0 1 1 是 -5 ?
为什么不直接将 o/p 作为 1 0 1 1 的十进制等效值 11 ?
它是否对每个结果都应用 2 的补码?
我看过汇编代码。它是 IAND 和 IOR 指令。
javascript - 按位或掩码产生意外的负数
我正在尝试使用 javascript 中的按位运算符来获得直觉。我想输入两个 32 位二进制文字,或将它们放在一起,并以二进制格式输出结果。以下面我的代码的 4 位模拟为例,我预计 0b1000 和 0b0100 的 ORing 将产生 1100。确实如此!但是,当我运行下面的程序时,我得到-1000000000000000000000000000000。我对 javascript 的了解足够多,以至于怀疑问题可能与该语言将其 64 位双精度浮点数视为 32 位块(如果我可以这样称呼它们?)我不能但是很容易将潜在的现实与下面代码的奇怪行为联系起来。有什么想法吗?
python - Python 中不支持按位异或的操作数类型
我正在使用一个生成循环冗余校验值的函数。在通过串行发送数据包之前,我似乎遇到了一些问题,因为 Python 无法确定值的十六进制表示和 ascii 表示之间的区别。我发送以下数据:
到下面的函数
现在通过这个函数的“+”字符的实际值是(正如人们所期望的那样)0x2B,但是当 Python 到达该行时
我面临以下错误
^= 不支持的操作数类型:“long”和“str”
我尝试将值转换为 chr()、hex()、int()、long() 等,但均无济于事。似乎 Python 将“+”值解释为字符或字符串。