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


当前回答

function toHex(d) {
    return  ("0"+(Number(d).toString(16))).slice(-2).toUpperCase()
}

其他回答

限制/填充到一组字符数:

function decimalToHex(decimal, chars) {
    return (decimal + Math.pow(16, chars)).toString(16).slice(-chars).toUpperCase();
}
var number = 3200;
var hexString = number.toString(16);

16是基数,十六进制数中有16个值:-)

将十六进制颜色数字转换为十六进制颜色字符串:

使用toString和ES6 padStart将十六进制颜色数字转换为十六进制颜色字符串的简单解决方案。

const string = `#${color.toString(16).padStart(6, '0')}`;

例如:

0x000000将变为#0000000xFFFFFF将变为#FFFFFF

请在此处仔细检查此示例

以下是我的解决方案:

hex = function(number) {
  return '0x' + Math.abs(number).toString(16);
}

问题是:“如何在JavaScript中将十进制转换为十六进制”。虽然这个问题没有指定十六进制字符串应该以0x前缀开头,但编写代码的任何人都应该知道,0x被添加到十六进制代码中,以将十六进制代码与编程标识符和其他数字区分开来(1234可以是十六进制、十进制甚至八进制)。

因此,为了正确回答这个问题,为了编写脚本,必须添加0x前缀。

Math.abs(N)函数将负转换为正,作为一个额外的好处,它看起来不像是有人在碎木机上运行它。

我想要的答案应该有一个字段宽度说明符,因此我们可以显示8/16/32/64位值,就像您在十六进制编辑应用程序中看到的那样。这才是真正正确的答案。

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

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