2016-10-17 56 views
1

對不起,但我不擅長比特轉換。 我需要將十進制 - >十進制轉換爲低16位,如此示例。javascript十進制(16位低位)到十進制

1:16777237 decimal = 1000015 hex 
2:16 lower bits = 0015 hex (each digit in hexadecimal is 4 bits) 
3: 0015 hex = 21 decimal (21 is the result i need) 

使用

(16777237).toString(16); 

我能得到1000015六角,我的問題是怎麼樣,我得到低位作爲即時通訊,而不是在比特強。等等最好的方法來獲得結果。

+1

搜索'JavaScript的按位operation',然後你會在位更好;) –

回答

3

您可以應用1111111111111111 的位掩碼,並獲得結果bitwise AND

   base 2    base 10 base 16 
    ------------------------- -------- ------- 
    1000000000000000000010101 16777237 1000015 
& 0000000001111111111111111  65535  ffff 
----------------------------- -------- ------- 
    0000000000000000000010101   21  15 

console.log(16777237 & ((1 << 16) - 1));

另一種解決方案可以是,只使用remainder operator

console.log(16777237 % (1 << 16));

+0

謝謝,完美的,你能不能也轉換回提供樣本? ^^ :) 21-> 16777237 謝謝! :) – Stweet

+0

不,它不起作用。這是一種單向轉換。 –

相關問題