【发布时间】:2017-07-11 03:54:33
【问题描述】:
我想在 JavaScript 中将 Integer 转换为具有固定长度的 hex-string
例如,我想将 154 转换为 4 位长度的十六进制 (009A)。我想不出一个合适的方法来做到这一点。
【问题讨论】:
标签: javascript hex converter
我想在 JavaScript 中将 Integer 转换为具有固定长度的 hex-string
例如,我想将 154 转换为 4 位长度的十六进制 (009A)。我想不出一个合适的方法来做到这一点。
【问题讨论】:
标签: javascript hex converter
您可以添加一些零并使用String#slice 作为字符串数字。
var value = 154,
string = ('0000' + value.toString(16).toUpperCase()).slice(-4);
console.log(string);
var value = 154,
string = value.toString(16).toUpperCase().padStart(4, 0);
console.log(string);
【讨论】:
Number.prototype.toString() 可以在16 作为参数(基数为 16)传递时将数字转换为十六进制:
new Number(154).toString(16) //'9A'
但是,这不会有前导零。如果您希望添加前导零,您可以提供一个由 4 个零组成的字符串 '0000' 与 '9A' 连接,然后使用 slice 来抓取最后 4 个字符:
var value = 154;
var hex = ('0000' + value.toString(16).toUpperCase()).slice(-4); //009A
事件顺序如下所示:
154 -> '9a' -> '9A' -> '00009A' -> '009A'
【讨论】: