问题标签 [bitwise-xor]

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 回答
126 浏览

c++ - ("<<") 在 C++ 中是什么意思?

我不明白如何a<<b工作。

它实际上意味着a+= arr[i][j] ==0 && tfunc(i,j);什么?

是否意味着:

部分代码如下:

提前致谢

0 投票
2 回答
771 浏览

bit-manipulation - 如何对数字进行异或运算然后提取一个数字

假设a,b,c是三个整数。然后对它们进行异或运算,得到 d = a ^ b ^ c。

如果我只知道“a”和“d”,而a、b、c之间没有关系。有没有办法检查“a”是否被用来产生“d”?

例如:

我的意思是“d”是“a^b^c”的结果,我们事先并不知道。现在给定“d”和一个数字“x”,我可以检查 x 是 a、b 还是 c 之一吗?

抱歉,我忘记提及 a、b、c、d 在这里不是布尔变量。我用它们来代表任何编程语言中的整数。所以 d = a^b^c 是按位运算。例如,d 等于 2^18^19 的结果。

0 投票
3 回答
446 浏览

c# - 计算 char 的按位反转

我正在尝试对使用 hdlc 作为其数据包格式的串行端口设备进行逆向工程。根据文档,数据包应包含命令的按位反转(前 4 个字节),在本例中为"HELO". 使用原始程序时监控串口显示按位反转应该是什么:

问题是,即使距离很近,我也没有获得价值。

0 投票
1 回答
37 浏览

php - 使用按位函数时,PHP 中的相同字符串在回显到屏幕时会给出 2 个不同的输出

目前,我正在使用 PHP 中的 XOR 位函数,并试图确定我没有得到预期输出的原因。我对这些值进行了硬编码,发现在调用包含回显的函数时,我的字符串中只得到数字。但是,如果我回显一个包含相同数据的变量,我会得到预期的输出。

我从上面的代码中调用下面的代码。

$h#are 字符串包含一堆字符,这些字符在两次尝试中都保持不变。输出是:

我想知道为什么我在第二个例子中只得到数字

0 投票
2 回答
536 浏览

java - Java中是否有无符号字节的规定?

当我对一个字节进行异或运算时,可以说 -1(以字节为单位)与 2(int)我得到 -3 作为结果,而我希望该操作给我一个正整数。这是由于 2 的补码表示和类型提升。我想知道是否有办法在java中使用无符号字节。

输出

我在这里这里发现了两个很好的类似问题。但是我想要一些方法或按位运算来返回一个 int ,它可以在以后转换为没有 2 的补码表示的字节。

0 投票
2 回答
2632 浏览

java - 按位异或运算符和字节数组

我有以下代码:

具有初始值的 S[] 数组:0,1,2,3,4,5...

当程序到达该行时:

S[0] 将其值从“0”更改为“13”,我不明白为什么。什么在修改 S[0] 值?正如我所看到的,'^' 只是进行比较并更改 arrby[n2] 的值而不是 S[0] 的值

0 投票
2 回答
1059 浏览

c - 给定两个整数,在不使用 if 语句的情况下找到与给定两个不同的第三个整数

上面提到的问题如下:给定两个整数 x1 和 x2,找到另一个整数 x3,它与 x1 和 x2 都不同,不使用 if 关键字。

我的解决方案是基于对整数的按位运算,以及当且仅当两个位不相等时两个位之间的 XOR 将返回 1 的事实。

这个解决方案有效吗?你能找到更好的解决方案吗?当然,运行时考虑和内存消耗应该尽可能好。

注意:三元运算和比较(即 - != , == )也是不允许的

提前致谢,

家伙。

我的解决方案:

0 投票
0 回答
120 浏览

bitwise-operators - 在priority_queue C++的比较器运算符中使用XOR和1的用例是什么

从 C++ (link)中 STL priority_queue 的“cppreference”示例中,我不完全理解那里给出的最后一个示例。比较器是一个 lambda 表达式,一切都很好,但是对于每个参数使用 1 的按位 XOR 是我不明白的——它有什么用?

这是代码示例:

输出:

我可以看到结果是向量成对排序,其中第二个大于第一个,但我不完全理解两件事:

  1. 与 1 进行异或运算如何获得这种效果?(我有一种感觉,切换第一位会使其与 8 相关,大于 9,然后 7 大于 6,等等。)
  2. 这种订购的用例/应用是什么?
0 投票
1 回答
128 浏览

algorithm - How many sets of 4 numbers are there such that their xor is equal to 0?

I have two nonnegative integers x and y, both of them have at most 30 bits (so their values are around 10^9).

I'd like to calculate how many sets of 4 numbers {a_1, a_2, a_3, a_4} are there such that a_1 + a_2 = x and a_3 + a_4 = y and xor of all those 4 numbers is equal to 0.

What is the fastest algorithm to solve this problem?

The fastest I can think of is rearranging the xor equation to a_1 xor a_2 = a_3 xor a_4.

Then I can calculate all values of the left hand side in O(x) and values of right hand side in O(y), so the whole algorithm runs in O(x + y).

0 投票
2 回答
308 浏览

java - Java中多个操作数的按位异或

我想对多个操作数进行按位运算,以便当只有一个整数在该位置有 1 位时输出整数为 1,否则为 0。

我正在使用: (a ^ b ^ c ^ d ^ e ^ f ^ g ^ h ^ i) ^ (a & b & c & d & e & f & g & h & i)

我想得到:

但是,我得到:

知道为什么吗?或者我应该修改什么?