Questions tagged «xor»

对于涉及异或运算(通常按位)的问题。

17
在Java中创建“逻辑异或”运算符
观察结果: Java具有逻辑AND运算符。 Java具有逻辑或运算符。 Java具有逻辑NOT运算符。 问题: 据sun称,Java没有逻辑XOR运算符。我想定义一个。 方法定义: 作为一种方法,其简单定义如下: public static boolean logicalXOR(boolean x, boolean y) { return ( ( x || y ) && ! ( x && y ) ); } 方法调用: 可以通过以下方式调用此方法: boolean myVal = logicalXOR(x, y); 操作员用法: 我宁愿有一个运算符,其用法如下: boolean myVal = x ^^ y; 题: 关于如何在Java中定义新运算符,我找不到任何东西。我应该从哪里开始?
274 java  operators  xor 


13
使用xor运算符进行布尔检查是否是好习惯?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 10个月前关闭。 改善这个问题 由于布尔值的简洁性,我个人喜欢布尔运算符中的Exclusive^,,运算符。我更喜欢写 if (boolean1 ^ boolean2) { //do it } 比 if((boolean1 && !boolean2) || (boolean2 && !boolean1)) { //do it } 但是我经常会从其他经验丰富的Java开发人员(不仅是新手)中获得困惑的外观,有时还会评论如何仅将其用于按位运算。 我对有关使用^操作员的最佳做法感到好奇。

9
为什么XOR是组合哈希的默认方法?
假设您有两个哈希H(A),H(B)并且想要将它们组合在一起。我读过,将两个散列组合在一起的一种好方法是XOR,例如XOR( H(A), H(B) )。 这些哈希函数准则在此简要地介绍了我找到的最佳解释: 对具有大致随机分布的两个数字进行异或运算会导致另一个仍具有大致随机分布*的数字,但是现在取决于这两个值。 ... *在要组合的两个数字的每一位,如果两位相等,则输出0,否则为1。换句话说,在50%的组合中,将输出1。因此,如果两个输入位各自有大约50-50的可能性为0或1,那么输出位也是如此。 您能解释为什么XOR应该是用于组合哈希函数(而不是OR或AND等)的默认操作的直觉和/或数学方法吗?



4
使用此复合形式时,为什么用XOR交换值失败?
我发现此代码使用XOR^运算符在不使用第三个变量的情况下交换了两个数字。 码: int i = 25; int j = 36; j ^= i; i ^= j; j ^= i; Console.WriteLine("i:" + i + " j:" + j); //numbers Swapped correctly //Output: i:36 j:25 现在,我将上面的代码更改为该等效代码。 我的代码: int i = 25; int j = 36; j ^= i ^= j ^= i; …
76 c#  swap  xor 


2
查找A xor X = B + X的解的算法
给定整数A和B,找到整数X以便: A,B <2 * 1e18 A xor X = B + X 我非常怀疑是否可以使用数学方法来解决这个方程。这是我3年前遇到的编码问题,即使现在我自己也无法解决。 到目前为止,我的代码:(这是蛮力解决方案) #include <iostream> using namespace std; int main() { unsigned long long a, b; cin >> a >> b; for (unsigned long long x = 1; x < max(a, b); x++) { unsigned long long c = …
46 c++  xor 

1
如何方便地键入xor(⊻)运算符?
julia中的“ xor”运算符由以下符号定义:⊻ 如果我没记错的话,这也是代表“ xor”的唯一符号。 您应该如何方便地键入此内容? 我是否应该将其复制或粘贴到我的代码中,或者记住心脏的unicode表示形式?
9 julia  xor 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.