【问题标题】:NodeJS parseInt() function does not return correct HEX valueNodeJS parseInt() 函数不返回正确的 HEX 值
【发布时间】:2021-10-06 15:09:31
【问题描述】:

我有以下代码在 NodeJS 中将二进制转换为十六进制:

const bin = "1011100100001011101010100011100100001001101000100011101110110101101111011000001111111100010010111110001110101011100111101101110101100110110111000001111010101010110001110001110000110101001111111101000100110011111000010111110011001011000000001001010000100100"
const hex = parseInt(bin, 2).toString(16).toUpperCase();
console.log(hex)

它只返回:

B90BAA3909A23800000000000000000000000000000000000000000000000000

【问题讨论】:

标签: node.js math binary hex parseint


【解决方案1】:

由于 JavaScript 中的最大安全整数仅为 2^53 - 10b11111111111111111111111111111111111111111111111111111(请参阅 Number.MAX_SAFE_INTEGER),因此您需要在此处使用 BigInt

const bigIntFromBin = BigInt("0b1011100100001011101010100011100100001001101000100011101110110101101111011000001111111100010010111110001110101011100111101101110101100110110111000001111010101010110001110001110000110101001111111101000100110011111000010111110011001011000000001001010000100100");
const bigIntHex = bigIntFromBin.toString(16).toUpperCase();
console.log(bigIntHex);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多