如何在javascript中将DEC转换为HEX?

Aar*_*ron 4 javascript

我正在尝试使用JavaScript将DEC编号转换为HEX.

我试图转换的数字是28.

我尝试过使用:

function h2d(h) {return parseInt(h,16);}
Run Code Online (Sandbox Code Playgroud)

但它返回40

我也试过用:

function d2h(d) {return d.toString(16);}
Run Code Online (Sandbox Code Playgroud)

但它返回28

最终结果应该返回1C,但我似乎无法解决它.

有谁知道我哪里出错了?

Pet*_*ete 20

听起来你遇到了麻烦,因为当你正在寻找一个数字时你的输入是一个字符串.尝试将您的d2h()代码更改为这样,您应该设置:

function d2h(d) { return (+d).toString(16); }
Run Code Online (Sandbox Code Playgroud)

加号(+)是强制变量为数字的简写方法.只有Number的toString()方法需要一个基数,String不会.此外,您的结果将是小写的,因此您可能希望使用toUpperCase()以下方法强制它为大写:

function d2h(d) { return (+d).toString(16).toUpperCase(); }
Run Code Online (Sandbox Code Playgroud)

结果将是:

d2h("28") //is "1C"
Run Code Online (Sandbox Code Playgroud)

  • 除了一元 `+`,你也可以使用 Number 作为函数:`Number(d).toString(16)`,这可能更适合维护,因为它更明显地发生了什么。或不。 (2认同)