gpt4 book ai didi

javascript - 如何在javascript中将整数数组转换为十六进制字符串,反之亦然

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:02 24 4
gpt4 key购买 nike

我在 javascript 中有 32 位整数数组。如何将其转换为十六进制字符串并在需要时再次从该十六进制字符串构建相同的 32 位整数数组?

hexString = yourNumber.toString(16);可用于将数字转换为十六进制但是当数字数组转换为十六进制字符串(它将是连续的或由某个字符分隔)时,我如何从该字符串中取回数字数组?

最佳答案

如果你想不加逗号

[3546,-24,99999,3322] ==> "00000ddaffffffe80001869f00000cfa"

然后您可以为每个数字使用 8 个十六进制数字来构建字符串。当然,您必须对短于 8 个十六进制数字的数字进行零填充。并且您必须确保数字使用 twos-compliment 编码正确处理任何负值。

方法如下:

var a = [3546,-24,99999,3322];
alert("Original is " + JSON.stringify(a)); // [3546,-24,99999,3322]


// convert to hex string...
//
var b = a.map(function (x) {
x = x + 0xFFFFFFFF + 1; // twos complement
x = x.toString(16); // to hex
x = ("00000000"+x).substr(-8); // zero-pad to 8-digits
return x
}).join('');
alert("Hex string " + b); // 00000ddaffffffe80001869f00000cfa


// convert from hex string back to array of ints
//
c = [];
while( b.length ) {
var x = b.substr(0,8);
x = parseInt(x,16); // hex string to int
x = (x + 0xFFFFFFFF + 1) & 0xFFFFFFFF; // twos complement
c.push(x);
b = b.substr(8);
}
alert("Converted back: " + JSON.stringify(c)); // [3546,-24,99999,3322]

here's a jsFiddle显示了上面的示例。

关于javascript - 如何在javascript中将整数数组转换为十六进制字符串,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7670359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com