如何在JavaScript中将数字表示为十六进制
How to represent number as hexadecimal in JavaScript?
我正在尝试使用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);
也适用于
相关文章:
- 如何在JavaScript中将数字表示为十六进制
- Regex表示10位数字,其中没有't允许所有零、所有单个no和序列号
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 在Javascript中,如何在JSON对象中将1.00表示为数字
- JavaScript 使用多少位来表示一个数字
- regex表示以0开头但不是十进制的数字
- 重写Javascript's to字符串表示数字
- Javascript 数字表示
- AngularJs 星期几 - 以 ng 重复表示的数字
- 正则表达式表示数字,不超过 3 位数字,十进制可以是 .50 或 .00
- 将数字表示形式更改为印度语
- 使用点表示法访问对象的数字属性
- 我们如何在Javascript中将科学表示法转换为数字
- Regex表示有限的数字,不限的中间短划线
- 如何使用tickFormat只显示年份(以世纪和最后两位数字表示)
- 如何在HighCharts上以1表示y轴上的数字
- 表示多个数组的唯一索引的数字
- for 循环表示 0 到 n 个数字,并带有数字规范
- 把数字表示成百分比
- 在ROR生成的html中,prototype.js后面的数字表示什么意思?