如何在二進制上執行按位右移?如何在二進制中應用按位右移運算符?
>>
在JS中適用於整數。因此,6 >> 1
(按位右移,第1步)顯示結果爲3(110 >> 1
= - 正確)。這很好,但是...是否可以使用二進制右移運算符來工作?
我需要這個:110 >> 1
工作正常。這將顯示55作爲結果,它是正確的。 110是01101110. 01101110 >> 1 = 00110111
。 00110111
是55.正確。但我想011
爲結果!我如何在js中做到這一點?
如何在二進制上執行按位右移?如何在二進制中應用按位右移運算符?
>>
在JS中適用於整數。因此,6 >> 1
(按位右移,第1步)顯示結果爲3(110 >> 1
= - 正確)。這很好,但是...是否可以使用二進制右移運算符來工作?
我需要這個: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'
或者,你可以使用通常的位運算符和簡單地從一個字符串表示事前(一次)轉換,並重新轉換爲字符串表示事後(一次)。
下面是做這件事:
(parseInt("110",2) >> 1).toString(2) // gives "11"
parseInt
可以採取radix
作爲參數,所以如果你傳遞2
它將把字符串作爲二進制文件。所以,你轉換爲一個數字,轉換它,然後使用toString
(它也方便地將radix
作爲參數)轉換回二進制字符串。
將數字除以10? – thefourtheye 2014-10-17 19:16:29
另外,你爲什麼要這個? – Cameron 2014-10-17 19:21:23
明顯的問題:那不是二元的。這是隻有數字1和0的小數。 – harold 2014-10-19 15:34:16