如何对二进制执行按位右移?
JS 中的>>
适用于整数。因此,6 >> 1
(按位右移,步骤 1)显示结果为 3(110 >> 1
= 011
– 正确)。这很好,但是...是否可以与二进制一起使用右移运算符?
我需要这个:110 >> 1
正常工作。结果将显示 55,这是正确的。 110 是 01101110。01101110 >> 1 = 00110111
。 00110111
是 55。正确。但我想要 011
作为结果!我如何在 js 中做到这一点?
最佳答案
对我来说这看起来像是字符串操作。怎么样:
function shr(x, s) {
return
new String('0', Math.min(s, x.length)) +
x.substr(0, Math.max(0, x.length - s));
}
>>> shr('110', 1)
'011'
或者,您可以使用常用的按位运算符,并简单地预先从字符串表示形式转换(一次),然后再转换回字符串表示形式(一次)。
关于javascript - 如何在二进制上应用按位右移运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26431894/