抱歉,我不擅长转换位置。 我需要转换十进制 - >小数字由低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,而不是那么强的位。获得结果的最基本方式。
答案 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;
另一种解决方案可能是,只需使用remainder operator %
和2 16 。
console.log(16777237 % (1 << 16));
&#13;