^应用

239 阅读1分钟

let change = function (a, b, arr) { 
    arr[b] = arr[a] ^ arr[b]; 
    arr[a] = arr[a] ^ arr[b];
    arr[b] = arr[a] ^ arr[b]; 
};

let arr = [1, 2, 3, 4, 5, 6, 7, 8]; 
for (let i = 0, j = arr.length - 1; i <= j;i++, j--){ 
    change(i, j, arr) 
} 

console.log(arr);

^ 逻辑运算符:异或,相同为0,不同为1

特性:a ^ a = 0

假设 a = 10010011,b = 01001100;

b = a ^ b; // 11011111

a = a ^ b; // 01001100

b = a ^ b; // 10010011