var d = 7;設置數字中的特定位
二進制:7 =(111)
我想要做的是從處置權爲1或0組第二名,
,並返回十進制值。
例如,如果我想使第二1爲0,在此之後處理應該返回圖5,
因爲5 =(101)。
如何在JavaScript中實現這個?
編輯
答案應該是這樣的:
function func(decimal,n_from_right,zero_or_one)
{
}
凡小數要處理的數量, n_from_right是如何從右側多少位,我在上面的例子是2 。 zero_or_one表示在處置時將該特定位設置爲0或1。
+1 - 很好的答案,很好地解釋了 –
我誤會了嗎? '〜2!== parseInt(「1111111111111101」,2)' –
@MichaelTheriot:我在答案中簡化了一點,按位運算符在32位數上工作,所以它應該是另外16個1纔是準確的。但是,這些數字仍然不相同,因爲'〜2'是'-3'和'parseInt(「11111111111111111111111111111101,2)'是'4294967293'。由於按位運算符在32位數字上工作,「4294967293」太大而不適合32位,所以在操作中將轉換爲「-3」。 (嗯,它真的轉換爲數字的二進制表示形式,但在轉換回來時它以'-3'形式出現。) – Guffa