如何在JavaScript中将数字表示为十六进制

How to represent number as hexadecimal in JavaScript?

本文关键字:数字 表示 十六进制 JavaScript      更新时间:2023-09-26

我正在尝试使用JavaScript将DEC数字转换为HEX。

我试图转换的数字是28。

我尝试过使用:

function h2d(h) {return parseInt(h,16);}

但是它返回40

我也尝试过使用:

function d2h(d) {return d.toString(16);}

但是它返回28

最终结果应该是1C,但我似乎无法计算出来。

有人知道我哪里错了吗?

这听起来像是遇到了麻烦,因为在查找数字时,您的输入是字符串。试着把你的d2h()代码改成这样,你应该被设置为:

function d2h(d) { return (+d).toString(16); }

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

function d2h(d) { return (+d).toString(16).toUpperCase(); }

因此,结果将是:

d2h("28") //is "1C"

重复问题

(28).toString(16)

你正在制造的错误是"28"是一个字符串,而不是一个数字。你应该把它当作一个数字。人们通常不应该期望该语言能够在进行转换之前将字符串解析为整数(好吧……我想在javascript中期望相反的方式是合理的)。

d2h()应该可以正常工作:

js> var d=28
js> print(d.toString(16))
1c

你是怎么测试的?

此外,40是d2h(28)的预期输出,因为十六进制的"28"是十进制的40。

let returnedHex = Number(var_value).toString(16);

也适用于