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

javascript decimal (16 lower bits) to 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 十六进制,我的问题是如何,我得到较低的位作为 im,不是那么强的位。等获得结果的最佳方式。

您可以使用 11111111111111112 应用位掩码并使用 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 % 与 216.

一起使用

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