问题标签 [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.
c++ - ("<<") 在 C++ 中是什么意思?
我不明白如何a<<b
工作。
它实际上意味着a+= arr[i][j] ==0 && tfunc(i,j);
什么?
是否意味着:
部分代码如下:
提前致谢
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 的结果。
c# - 计算 char 的按位反转
我正在尝试对使用 hdlc 作为其数据包格式的串行端口设备进行逆向工程。根据文档,数据包应包含命令的按位反转(前 4 个字节),在本例中为"HELO"
. 使用原始程序时监控串口显示按位反转应该是什么:
问题是,即使距离很近,我也没有获得价值。
php - 使用按位函数时,PHP 中的相同字符串在回显到屏幕时会给出 2 个不同的输出
目前,我正在使用 PHP 中的 XOR 位函数,并试图确定我没有得到预期输出的原因。我对这些值进行了硬编码,发现在调用包含回显的函数时,我的字符串中只得到数字。但是,如果我回显一个包含相同数据的变量,我会得到预期的输出。
我从上面的代码中调用下面的代码。
$h#
are 字符串包含一堆字符,这些字符在两次尝试中都保持不变。输出是:
我想知道为什么我在第二个例子中只得到数字
java - 按位异或运算符和字节数组
我有以下代码:
具有初始值的 S[] 数组:0,1,2,3,4,5...
当程序到达该行时:
S[0] 将其值从“0”更改为“13”,我不明白为什么。什么在修改 S[0] 值?正如我所看到的,'^' 只是进行比较并更改 arrby[n2] 的值而不是 S[0] 的值
c - 给定两个整数,在不使用 if 语句的情况下找到与给定两个不同的第三个整数
上面提到的问题如下:给定两个整数 x1 和 x2,找到另一个整数 x3,它与 x1 和 x2 都不同,不使用 if 关键字。
我的解决方案是基于对整数的按位运算,以及当且仅当两个位不相等时两个位之间的 XOR 将返回 1 的事实。
这个解决方案有效吗?你能找到更好的解决方案吗?当然,运行时考虑和内存消耗应该尽可能好。
注意:三元运算和比较(即 - != , == )也是不允许的
提前致谢,
家伙。
我的解决方案:
bitwise-operators - 在priority_queue C++的比较器运算符中使用XOR和1的用例是什么
从 C++ (link)中 STL priority_queue 的“cppreference”示例中,我不完全理解那里给出的最后一个示例。比较器是一个 lambda 表达式,一切都很好,但是对于每个参数使用 1 的按位 XOR 是我不明白的——它有什么用?
这是代码示例:
输出:
我可以看到结果是向量成对排序,其中第二个大于第一个,但我不完全理解两件事:
- 与 1 进行异或运算如何获得这种效果?(我有一种感觉,切换第一位会使其与 8 相关,大于 9,然后 7 大于 6,等等。)
- 这种订购的用例/应用是什么?
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).
java - Java中多个操作数的按位异或
我想对多个操作数进行按位运算,以便当只有一个整数在该位置有 1 位时输出整数为 1,否则为 0。
我正在使用: (a ^ b ^ c ^ d ^ e ^ f ^ g ^ h ^ i) ^ (a & b & c & d & e & f & g & h & i)
和
我想得到:
但是,我得到:
知道为什么吗?或者我应该修改什么?