协慌网

登录 贡献 社区

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

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

答案

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

hexString = yourNumber.toString(16);

并通过以下方式扭转过程:

yourNumber = parseInt(hexString, 16);

如果需要处理位字段或 32 位颜色等内容,则需要处理带符号的数字。 javascript 函数toString(16)将返回一个负十六进制数,这通常不是你想要的。这个函数做了一些疯狂的补充,使它成为一个正数。

function decimalToHexString(number)
{
  if (number < 0)
  {
    number = 0xFFFFFFFF + number + 1;
  }

  return number.toString(16).toUpperCase();
}

console.log(decimalToHexString(27));
console.log(decimalToHexString(48.6));

下面的代码将十进制值 d 转换为十六进制。它还允许您向十六进制结果添加填充。因此默认情况下 0 将变为 00。

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;
}