javascript十进制(16位低位)到十进制

时间:2016-10-17 08:09:38

标签: javascript hex decimal bits

抱歉,我不擅长转换位置。 我需要转换十进制 - >小数字由低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十六进制,我的问题是如何,我得到低位作为im,而不是那么强的位。获得结果的最基本方式。

1 个答案:

答案 0 :(得分:3)

您可以应用位掩码1111111111111111 2 并使用bitwise AND获得结果。

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



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

另一种解决方案可能是,只需使用remainder operator %和2 16

&#13;
&#13;
console.log(16777237 % (1 << 16));
&#13;
&#13;
&#13;