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

ken*_*zie 5 javascript hex converter

我想一个转换Integerhex-string在JavaScript中一个固定长度

例如,我想将154转换为具有4位数字(009A)的十六进制。我不知道这样做的正确方法。

hac*_*ave 9

Number.prototype.toString()16作为参数传递时,可以将数字转换为十六进制(基数为 16):

new Number(154).toString(16) //'9A'
Run Code Online (Sandbox Code Playgroud)

但是,这不会有前导零。如果您想添加前导零,您可以提供一个由 4 个零组成的字符串'0000'以与 连接'9A',然后使用 slice 仅获取最后 4 个字符:

var value = 154;
var hex = ('0000' + value.toString(16).toUpperCase()).slice(-4); //009A
Run Code Online (Sandbox Code Playgroud)

事件序列显示如下:

154 -> '9a' -> '9A' -> '00009A' -> '009A'
Run Code Online (Sandbox Code Playgroud)


Nin*_*olz 5

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

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

String#padStart

var value = 154,
    string = value.toString(16).toUpperCase().padStart(4, 0);
    
console.log(string);
Run Code Online (Sandbox Code Playgroud)