JavaScript 中按位的操作(与、或、异或、按位取反、左移、右移)

按位与 (&):

a = 2, b = 3
 
a & b = 2
 
解释: 2的二进制为'10',3的二进制为'11',按位与:都为1时得1,出现0时得0,因此结果是'10',2

按位或(|):

a = 6, b = 5
 
a | b = 7
 
解释:6='110',5='101',按位或,每一位二进制上进行或操作,得到'111',7

按位异或(^):

a = 2, b = 4
 
a ^ b = 6
 
解释:2='10', 4='100', 结果为'110',6

异或:相同为0,不同为1

按位取反(~):



~2 = -3
~(-2) = 1
~0 = -1
 
按位取反:先+1再取相反数。

~1 的计算步骤:
1.将 1(这里叫: 原码)转二进制 = 00000001
2.按位取反 = 11111110
3.发现符号位(即最高位)为 1(表示负数),将除符号位之外的其他数字取反 = 1000001
4.未位加1取其补码 = 1000010
5.转换回十进制 = -2

左移(<<):

2 << 1 = 4
 
解释:2='10', 左移1位变为'100',4

右移(>>):

2 >> 1 = 1

解释: 2='10', 右移一位变为'1',1

原文链接:https://blog.csdn.net/romeo12334/article/details/81234991

你可能感兴趣的:(javascript,开发语言,ecmascript)