📜  dec 到十六进制 javascript (1)

📅  最后修改于: 2023-12-03 15:30:25.086000             🧑  作者: Mango

十进制转十六进制的JavaScript代码

本文介绍如何在JavaScript中将十进制数转换为十六进制数。

方法一:使用toString()方法

在JavaScript中,可以使用toString()方法将十进制数转换为十六进制数。toString()方法接受一个参数,用于指定所需的基数。当基数为 16 时,toString()方法将返回十六进制表示的字符串。

let dec = 255;
let hex = dec.toString(16);
console.log(hex);
//输出: ff
方法二:使用Number对象的toString()方法

类似于方法一,也可以使用Number对象的toString()方法将十进制数转换为十六进制数。

let dec = 255;
let hex = (new Number(dec)).toString(16);
console.log(hex);
//输出: ff
方法三:使用padStart()方法

如果你希望生成的十六进制数始终具有固定的位数,可以使用padStart()方法。padStart()方法接受两个参数:第一个参数指定所需的字符串长度,第二个参数指定用于填充字符串的字符。

let dec = 255;
let hex = dec.toString(16).padStart(2, '0');
console.log(hex);
//输出: ff
方法四:使用printf()函数

如果你习惯使用C语言中的printf()函数来格式化输出,那么可以使用sprintf.js库来模拟printf()函数的功能。

首先需要导入sprintf.js库:

<script src="https://cdnjs.cloudflare.com/ajax/libs/sprintf/1.1.2/sprintf.min.js"></script>

然后就可以使用sprintf()函数来进行格式化输出了。例如,下面的代码将十进制数转换为十六进制数,并将结果输出到控制台:

let dec = 255;
let hex = sprintf('%x', dec);
console.log(hex);
//输出: ff
方法五:手写函数

如果你不想依赖任何库或内置函数,也可以手写一个函数来将十进制数转换为十六进制数。

下面的函数使用了一个数组来存储十六进制数的字符表示,然后通过除以 16 和取余数的方式将十进制数转换为十六进制数。

function decToHex(dec) {
  let hexChars = '0123456789abcdef';
  let hex = '';
  while (dec > 0) {
    let rem = dec % 16;
    hex = hexChars[rem] + hex;
    dec = Math.floor(dec / 16);
  }
  return hex;
}

//示例
console.log(decToHex(255));
//输出: ff

以上五种方法可以任选其一,将十进制数转换为十六进制数。