我正在使用一种简单的技术将二进制数转换为十六进制数。
parseInt('1011110000',2).toString(16) == '2f0'
parseInt('111110011111101111100111011011001',2).toString(16) == '1F3F7CED9'
使用更大的二进制数,我遇到了一个问题:
parseInt('11000011010011001100110011001100110011001100110011001100',2).toString(16);
返回c34cccccccccd0
而不是正确的值c34cccccccccc
。
减去四位解决问题:
parseInt('1100001101001100110011001100110011001100110011001100',2).toString(16);
返回c34cccccccccc
。
为什么会这样?如何避免此问题并将大二进制数转换为十六进制数?