问题标签 [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.

0 投票
1 回答
1261 浏览

java - Java 中的按位运算 OR (double) 不可能,在 JavaScript 中可能

这是来自 Google Chrome Javascript 控制台的输出。
http://i.stack.imgur.com/gefcZ.png

这是 DrJava Java 控制台的输出。
http://i.stack.imgur.com/bQ7hS.png

我的 Javascript 代码是

如果两个变量都是整数,则似乎在 Java 中编译得很好,但显然它们在 javascript 中是双精度的。虽然

typeof baseCPUCyclesPerIteration揭示"number"

结果很明显它是一个双重数据类型。我不明白为什么按位OR 0适用于 Javascript 中的双精度,但不适用于 Java 双精度。

似乎的目的| 0只是修剪双数据类型中的小数点。我猜Java中的等价物将是(int)(long)强制转换这是正确的吗?或者按位| 0做的不仅仅是修剪javascript中的小数点?

编辑:你| 0不只是在javascript中修剪只是运行了这个。8899811111.111113453456754645 | 0回来了309876519
(虽然我通过了双重限制,但 lol 仍然尝试在 javascript 中计算它,我猜这是发生溢出的地方)。

0 投票
1 回答
227 浏览

c - Frama-C:Jessie 插件无法证明按位或安全(wrt 溢出)

我正在使用 Frama-C Nitrogen 来分析以下代码

不幸的是,Jessie 无法证明不存在整数溢出。特别是,无法证明以下条件(确保我正确解释了输出,那是哪种语言?我在哪里可以找到手册?):

Jessie 插件无法证明按位或溢出安全性

通过查看前面的几行,我们还得到:

Jessie 不应该能够在 H23 中推断出更强的属性吗?喜欢

在我看来,杰西将中间结果视为数学整数,因此忽略了无符号字符“提示”。

我还尝试了价值分析:

产生输出:

值分析正确计算了 c 的界限,但我不明白为什么 a 和 b 的结果是近似的(确定它们不应该是微不足道的吗?)

任何见解将不胜感激。

0 投票
1 回答
1114 浏览

assembly - 两个二进制数的按位或

摘自计算机系统和网络过去的论文:

这个问题是关于汇编语言的 a) 解释两个二进制数的按位或是什么。举个例子。[5分]

我只是在做一些一般性的修改,由于没有标记方案,很难判断我是否正确,所以我想要一些建议或指出正确的方向。

我的想法: 在我们的例子中,按位 OR 需要两个长度相等的二进制数,并对它们执行逻辑包含 OR。

你认为这个答案就足够了吗?

0 投票
3 回答
1388 浏览

c - 将位分配给 64 位变量

我对位操作有点陌生。我正在尝试将信息存储在 int64_t 变量中,如下所示:

我的意图是在变量 u 中存储 44 个 1,并确保剩余位置全部为 0,因此“t”返回 44。但是,它总是返回 64。对于其他变量,例如 int32,它也会失败。为什么?

0 投票
1 回答
236 浏览

c - 整数与负数按位或的目的

NaN我对 IEEE 单精度和双精度浮点的实现和表示感到好奇,我发现了“is NaN”函数的这种实现。即:

我不明白 的目的(lx|(-lx)) >> 31,并且在我的头脑中没有推理出来之后,我对所有整数进行了测试,发现结果为 0 ,lx = 0否则为 1。

我能想出的唯一原因是,(lx != 0)由于某些 C 标准没有定义为真操作分配什么整数值(例如,不保证为真时为 1),或者可能!=比负数慢,所以可能无法使用代替 -或位移位。否则,我难住了。

作为参考,我用来尝试所有整数的代码,以防出错。

0 投票
3 回答
322 浏览

c++ - 如何在整行或整列中使用位运算符?

我现在正在使用 c++ opencv 进行图像处理。而且我需要对矩阵的每一列或每一行进行“或”。例如

我搜索了很长时间,但我想我将无法找到它。请帮我 !

0 投票
3 回答
12893 浏览

python - 如何反转按位或运算?

这是我所做的:

返回

我明白这是0b1011101 | 0b11000111因为0b11011111

但是,假设我想做相反的操作。如何从and0b1011101之间的按位运算中得到?0b110001110b11011111

0 投票
2 回答
197 浏览

enums - 使用 fsharp 中的模式匹配和按位组合枚举标志干净地避免“让可变”

考虑以下(可变)示例:

我用这个例子来举例说明我们经常遇到的情况。这个想法很简单:基于字符串(或任何复杂条件),您需要组合零个或多个枚举标志。

我认为,最简单的方法就是像上面那样使用 mutable。如果你不使用 mutable,我可以想到无数其他方法,但似乎没有一个很干净:

  • 结合返回标志的递归函数(繁琐)
  • enum.Combine正如 Don Syme 所建议的那样,每个数组条目中都有一个 if 条件或模式匹配(丑陋)
  • 很长范围的|||组合表达式,每个表达式都有一个条件(也很丑陋)

我确信有一种更简单、更直接的方法,最好是模式匹配,当然,没有可变性。可能是一天中的晚些时候,但我现在根本想不起来,谁能给我指点灯?

0 投票
3 回答
1133 浏览

php - 如何测试 PHP 按位函数输入参数

有时在编程中,它们允许将参数链接到单个函数输入变量中,如下面的第二个输入变量:

PHP 将此单管道字符(|)称为按位OR运算符。我现在如何在里面添加一些东西foo()来测试$vFlags看看设置了哪些标志?

0 投票
2 回答
300 浏览

java - Java中的按位异或运算

我在执行我的程序时遇到了这个错误。

“二元运算符'^'的错误​​操作数类型第一种类型:int第二种类型:int []”

这对我有很大帮助,谢谢。