XOR运算符将整数更改为什么?我们可以从中得到一些优化的东西吗?
int arr[7]={1,5,7,9,5,2,5};
int xora[7];
xora[0]=0;
for(i=1; i<7; i++)
xora[i] = xora[i-1]^arr[i];
此后xor[i]
的重要性是什么?
这可以是某种优化吗?
xora出来了
5 2 11 14 12 9
这个数字指的是什么?
Linked to a programming problem's solution Here
答案 0 :(得分:0)
要理解XOR,我们需要转到位级别。对于两位,x和y,
x ^ y = xy&#39; + x&#39; y其中x&#39;是x的补充。
如果x不等于y ,则x ^ y = 1
如果x等于y,则x ^ y = 0.
在整数的情况下,它执行整数的各个位的XOR。
在这里,
xora[1] = xora[0]^arr[1] = 0^5 = (0000)^(0101) = (0101) = 5
// considering 4 bits only for integer and (.) represent bit representation
xora[2] = xora[1]^arr[2] = 5^7 = (0101)^(0111) = (0010) = 2
xora[3] = xora[2]^arr[3] = 2^9 = (0010)^(1001) = (1011) = 11
// and so on.