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));
抱歉,我不擅长位转换。 我需要将十进制 -> 十进制转换为低 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));