Cra*_*lus 5 algorithm bit-manipulation xor
说实话,我的位操作生锈了.
我感兴趣的是XOR操作.好吧,我知道它的作用是什么,并且它用于加密,我们可以在没有任何临时变量的情况下进行交换,但我感兴趣的是算法的特定方法是否XOR适合.
我的意思是我对XOR算法的实际应用感兴趣(例如我们可以用它来找到重复的独特元素).是否存在一种问题模式(或问题的表述),人们可以看到使用方法XOR是什么?(与何时使用二进制搜索的模式相同?)
是否有一些XOR与核心算法相关的算法的实际应用列表,而不是简单地使用它,例如更快地进行数学运算,就像我们可以使用>>而不是划分2.
欢迎任何输入
我想到的几个例子:
切换位:
int i = 123;
i ^= (1 << 4); // toggle bit 5
Run Code Online (Sandbox Code Playgroud)
某种随机性:
int i = 123;
for (int k = 0; k < 100; k++)
{
i = i ^ (i << 1) + i;
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
"弱加密":
int b = 235321;
int key = 24552;
int encrypted = b ^ key;
int decrypted = encrypted ^ key; // equals 235321
Run Code Online (Sandbox Code Playgroud)