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



对不起,但我不擅长位转换。我需要将decimal -> decimal转换为低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十六进制,我的问题是如何,我像我一样得到较低的位,而不是那么强的位。

您可以使用111111111111111111111111 2来应用位掩码,并获得按位与的结果。

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

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

另一种解决方案是,只使用216的余数算子%

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

最新更新