我有一个整数列表,可以有任意数量的项目。现在,我想计算所有这些数字的 BITWISE XOR。如果数字已经知道,可以按如下方式完成:
int xor = 10 ^ 25 ^ 40 ^ 55......and so on
Run Code Online (Sandbox Code Playgroud)
但是当元素数量未知时,我无法在运行时为列表的每个元素动态实现它。我想一次对所有时间应用按位异或,而不是一次两个。
我正在尝试在 Rust 中实现复杂步骤微分。然而,当将复数提高到高于 2 的幂时,我得到的结果与 Julia 完全不同。该算法在 Julia 中适用于任何函数,但在 Rust 中,它仅适用于二阶函数。
以下是我用两种语言计算虚数幂的方法。
在铁锈中:
let x: f64 = 1.0;
let h: f64 = f64::from(1*10^-8);
println!("Result = {:?}", (num::pow(Complex::new(x,h),3));
// Complex { re: -587.0, im: 2702.0 }
Run Code Online (Sandbox Code Playgroud)
在朱莉娅:
h = 1*10^-8
x = 1
println((x+im*h)^3)
# 0.9999999999999997 + 3.000000000000001e-8im
Run Code Online (Sandbox Code Playgroud)
我不知道如何做到这一点,所以非常欢迎任何帮助。
我编写了一个操作十六进制值的bash脚本,我需要在两个十六进制数字之间进行异或运算。我的问题是,当我在 bash 提示符中尝试时,它可以工作并返回正确的值,但在脚本中该值是 false。
当 XOR 变量 $ExtendAuthKey 和 $IPAD 时,结果必须为: 181ad673a5d94f0e12c8894ea26381b363636363636363636363636363636363636363636363636363636363636363636363636363 636363636363636363636
但事实上我得到这个值:3906369333256140342
我不明白这种行为,如果你有解释或解决方案,我会接受,谢谢
看我的脚本:`
#!/bin/bash
AuthID=80001f8880e9bd0c1d12667a5100000000
IPAD=0x36363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636
OPAD=0x5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c
Ext0=0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WholeMsgIn=0x3081800201033011020420dd06a7020300ffe30401050201030431302f041180001f8880e9bd0c1d12667a5100000000020105020120040475736572040c00000000000000000000000004003035041180001f8880e9bd0c1d12667a51000000000400a11e02046b4c5ac20201000201003010300e060a2b06010201041e0105010500
line=test
#Calcule AuthKey
AuthKey=$(snmpkey md5 $line $AuthID | grep auth | cut -d ' ' -f 2)
#Concat AuthKey + Ext0
ExtendAuthKey=$AuthKey${Ext0:2}
#Calcule de K1 = ExtendAuthKey XOR IPAD
K1=$(( $ExtendAuthKey ^ $IPAD ))
#Calcule de K2 = ExtendAuthKey XOR OPAD
K2=$(( $ExtendAuthKey ^ $OPAD ))
#Concat K1 + WholeMsgIn
Concat1=$K1$WholeMsgIn
#Calcul Hash Concat1
echo ${Concat1:2} > tempH.hex …Run Code Online (Sandbox Code Playgroud) python 3中是否有可以bitwise-xor字节的内置函数?例如,如果我有 2 个字节数组:
one = oE1ltQSsoEqRC4j1EMz1ORU1dyucIcI4WstKz-uhuKA=
two = Rffs1PW5zA1h5RFVh5MkLw5R7a2QVHY7cwnjuSPktwc=
one XOR two = 5bqJYfEVbEfw7pmgl1_RFhtkmoYMdbQDKcKpdshFD6c=
Run Code Online (Sandbox Code Playgroud) XNOR我在编写最多包含 7 个~和运算符的按位函数时遇到困难|。例子:bitXnor(6, -5) = 2。如果没有 ,我该如何做到这一点&?
到目前为止我有这个:
int bitXnor(int x, int y) {
return ~(~x | ~y);
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
int bitXnor(int x, int y) {
return ~(~x | ~y);
Run Code Online (Sandbox Code Playgroud) 我有一个关于在ADD/SUB和分支方面实现XOR的面试问题:在两个数字之间实现Xor操作仅使用以下命令:
您可以使用寄存器r3和r4作为额外空间.假设寄存器r1存储第一个数字,r2存储第二个数字
有什么区别~i和INT_MAX^i
两者给出相同的没有.在二进制,但当我们打印否.输出不同,如下面的代码所示
#include <bits/stdc++.h>
using namespace std;
void binary(int x)
{
int i=30;
while(i>=0)
{
if(x&(1<<i))
cout<<'1';
else
cout<<'0';
i--;
}
cout<<endl;
}
int main() {
int i=31;
int j=INT_MAX;
int k=j^i;
int g=~i;
binary(j);
binary(i);
binary(k);
binary(g);
cout<<k<<endl<<g;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我把输出作为
1111111111111111111111111111111
0000000000000000000000000011111
1111111111111111111111111100000
1111111111111111111111111100000
2147483616
-32
Run Code Online (Sandbox Code Playgroud)
为什么k和g不同?
c++ bit-manipulation bit-shift bitwise-operators bitwise-xor
bitwise-xor ×7
xor ×3
bash ×1
bit-shift ×1
c ×1
c# ×1
c++ ×1
encryption ×1
python ×1
python-3.x ×1
rust ×1