Bits
基本概念
有符号数是利用二进制最高位表示,符号 0 代表正 1 代表负,无符号最高位的 0、1 代表正常的数
>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补 0,而若该数为负数,则右移后高位同样补 0>>表示右移,如果该数为正,则高位补 0,若为负数,则高位补 1<<表示左移,不分正负数,低位补 0
操作符
&、|、^、~、<<、>>
解题知识点
==求 n 的第 k 位数字: n >> k & 1==
==
x = x & (x - 1)打掉最低位的 1====
x & -xlowbit(n),得到最低位的 1,-x得到反码再加 1==异或(两位相同为 0,不同为 1)
x ^ 0 = xx ^ x = 0x ^ y ^ x = yx ^ y ^ x = (x ^ y) ^ x = x ^ (y ^ x)
去除小数
~~12.22
12.22 >> 0
12.22 | 0
位运算代替乘除2
24 >> 1
24 << 1
判断奇偶数
x & 1 === 1orx & 1 === 0判断奇偶x % 2 === 1
不增加变量实现两数交换
;[a, b] = [b, a] a = a + b b = a - b a = a - b a = a ^ b b = a ^ b a = a ^ b
questions
Last updated