如何在Javascript中将整数转换为具有固定长度的十六进制?

Posted

技术标签:

【中文标题】如何在Javascript中将整数转换为具有固定长度的十六进制?【英文标题】:How can I convert an integer to hex with a fix length in Javascript? 【发布时间】:2017-07-11 03:54:33 【问题描述】:

我想在 javascript 中将 Integer 转换为具有固定长度的 hex-string

例如,我想将 154 转换为 4 位长度的十六进制 (009A)。我想不出一个合适的方法来做到这一点。

【问题讨论】:

【参考方案1】:

您可以添加一些零并使用String#slice 作为字符串数字。

var value = 154,
    string = ('0000' + value.toString(16).toUpperCase()).slice(-4);
    
console.log(string);

String#padStart

var value = 154,
    string = value.toString(16).toUpperCase().padStart(4, 0);
    
console.log(string);

【讨论】:

【参考方案2】:

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'

【讨论】:

这么好的解决方案。谢谢!

以上是关于如何在Javascript中将整数转换为具有固定长度的十六进制?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PostgreSQL 中将长 NUMERIC 整数转换为位字符串?

如何在python中将有符号整数转换为无符号整数

如何在 .NET 中将双精度值转换为具有固定小数位数的小数类型值

如何在JavaScript中将数字的二进制表示从字符串转换为整数?

如何在 C++ 中将大数字符串转换为整数?

如何在 Netezza 中将整数字段转换为日期?