js ^ operator

js ^ operator

位运算

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_XOR_assignment

js 按位异或运算符 ^

// Bitwise XOR

x = 0;
y = 5;

x ^ y;
// 5

/*

000 = 0
^
101 = 5
---
101 = 5
*/

js ^ operator_第1张图片


/*

011 = 3
^
111 = 7
---
100 = 4

*/

js ^ operator_第2张图片

二进制 按位 异或运算 === 二进制 按位 !(或运算)

  1. x === y, return 0

对应位置的 bit 相同,则返回 0 (即 !1 + 0)

  1. x !== y, return 1

对应位置的 bit 不同,则返回 1 (即 !0 + 0)

按位 XOR 赋值

let x = 0;
let y = 1;

x ^= y

# equal to

x = x ^ y

LeetCode 算法

single-number

https://leetcode.com/problems/single-number/

/**
 * @param {number[]} nums
 * @return {number}
 */

var singleNumber = function(nums) {
  return nums.reduce((sum, i) => sum ^ i, 0);
};

// Time complexity : O(n)
// Space complexity : O(1)


/// test

singleNumber([1, 2, 3, 3, 3, 2, 2, 1])



refs

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators


Flag Counter

©xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


你可能感兴趣的:(js ^ operator)