如何在JavaScript中将十进制值转换为十六进制值?


当前回答

带填充:

function dec2hex(i) {
   return (i+0x10000).toString(16).substr(-4).toUpperCase();
}

其他回答

如果您想将数字转换为RGBA颜色值的十六进制表示,我发现这是以下几个提示的最有用组合:

function toHexString(n) {
    if(n < 0) {
        n = 0xFFFFFFFF + n + 1;
    }
    return "0x" + ("00000000" + n.toString(16).toUpperCase()).substr(-8);
}

为了完整起见,如果您想要负数的二进制补码十六进制表示,可以使用零填充右移>>运算符。例如:

> (-1).toString(16)
"-1"

> ((-2)>>>0).toString(16)
"fffffffe"

然而,有一个限制:JavaScript按位运算符将其操作数视为32位的序列,也就是说,您将得到32位2的补码。

使用以下命令将数字转换为十六进制字符串:

hexString = yourNumber.toString(16);

并通过以下方式反转该过程:

yourNumber = parseInt(hexString, 16);

AFAIK评论57807是错误的,应该是这样的:var hex=数字(d).toString(16);而不是var hex=parseInt(d,16);

function decimalToHex(d, padding) {
    var hex = Number(d).toString(16);
    padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;

    while (hex.length < padding) {
        hex = "0" + hex;
    }

    return hex;
}

如果要转换大整数,即大于Number.MAX_SAFE_INTEGER--9007199254740991的数字,则可以使用以下代码

const-hugeNumber=“9007199254740991873839”//确保其在字符串中const hexOfHugeNumber=BigInt(hugeNumber).toString(16);console.log(hexOfHugeNumber)