XOR在编程中的意义?它将整数值更改为什么?

时间:2017-08-02 14:46:36

标签: algorithm optimization

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

1 个答案:

答案 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.