JavaScript >>>
运算符是什么以及如何使用它
JavaScript的>>>
代表零填充右移运算符。它也被称为无符号右移位运算符。它属于按位运算符的范畴。按位运算符将操作数视为32位整数,并对它们的二进制表示进行操作。
零填充右移 ( >>>
) 运算符:它是一个二元运算符,其中第一个操作数指定数字,第二个操作数指定要移位的位数。该运算符将第一个操作数的位向右移动指定的位数。多余的位将被丢弃,同时从左边添加0位。由于符号位变为0,该运算符 (>>>) 返回一个32位的非负整数。
示例:
Input:
A = 6 ( 00000000000000000000000000000110 )
B = 1 ( 00000000000000000000000000000001 )
Output:
A >>> B = 3 ( 00000000000000000000000000000011 )
语法:
result = expression1 >>> expression2
>>>
和 >>
的区别: 这两者的区别在于无符号零填充右移操作符(>>>
)从左侧用零填充,而有符号右位移操作符(>>
)从左侧用符号位填充,因此在移位时保持整数值的符号不变。
示例: 此示例实现了使用 >>>
操作符:
console.log("For non negative number:<br>");
let a = 12;
// Shift right two bits
let b = 2;
console.log("a = " + a + " , b = " + b);
console.log("<br>a >>> b = " + (a >>> b) + '<br>');
console.log("<br>For negative number:<br>");
let a = -10;
// Shift right two bits
let b = 3;
console.log("a = " + a + " , b = " + b);
输出
For non negative number:<br>
a = 12 , b = 2
<br>a >>> b = 3<br>
<br>For negative number:<br>
a = -10 , b = 3
说明: 对于非负数来说,零填充右移(>>>
)和符号传播右移(>>
)得到的结果是相同的。例如,9 >>> 2
和 9 >> 2
得到的结果都是 2。但是对于负数来说,-9 >>> 2
的结果是 1073741821,而 -9 >> 2
的结果是 -3。
Case 1: non-negative number
12 (base 10): 00000000000000000000000000001100 (base 2)
--------------------------------
12 >>> 2 (base 10): 00000000000000000000000000000011 (base 2)
= 3 (base 10)
Case 2: negative number
-10 (base 10): 11111111111111111111111111110110 (base 2)
--------------------------------
-10 >>> 3 (base 10): 00011111111111111111111111111110 (base 2)
= 536870910 (base 10)