gpt4 book ai didi

javascript - 在 Javascript 中从整数解码固定字符串

转载 作者:行者123 更新时间:2023-12-03 11:43:30 25 4
gpt4 key购买 nike

我看到两个 32 位整数,其中编码有固定长度的八个字符 ASCII 字符串。

例如,字符串“HEYTHERE”被拆分为“HEYT”和“HERE”,每个字节被拆分为四个字节,分别为 0x48455954 和 0x48455245 或 1212504404 和 1212502597。

在 Javascript 中将这两个数字转换回字符串的最有效方法是什么?

到目前为止,我有以下内容,但我想知道是否有更快/不那么笨拙的方法:

let xx1 = [ 1212504404, 1212502597 ];
let xx1str = String.fromCharCode((xx1[0] >> 24) & 255) +
String.fromCharCode((xx1[0] >> 16) & 255) +
String.fromCharCode((xx1[0] >> 8) & 255) +
String.fromCharCode( xx1[0] & 255) +
String.fromCharCode((xx1[1] >> 24) & 255) +
String.fromCharCode((xx1[1] >> 32) & 255) +
String.fromCharCode((xx1[1] >> 8) & 255) +
String.fromCharCode( xx1[1] & 255);

最佳答案

我认为你可以有一个包含两个字符或四个字符的哈希表。

hash2 = { '4040': 'AA', '4041': 'AB',
'4845':'HE',
'5954':'YT',
'4845':'HE',
'5245':'RE'
}
function madDecode(num) {
return hash2[num.toString(16).substr(0, 4)]
+ hash2[num.toString(16).substr(4, 4)]

}
out.innerHTML = madDecode(0x40404041) +', '
+ madDecode(1212504404) + madDecode(1212502597)
<span id=out></span>

您可以通过使用 4 字符哈希来进一步改进。甚至进一步使用数组而不是对象。

hash2 = []

function chCode(x) {
x = x.toString(16)
while (x.length < 2) x = '0' + x
return x
}

function makeHash() {
for (var i = 32; i < 128; i++) {
for (var j = 32; j < 128; j++) {
hash2[parseInt(chCode(i) + chCode(j), 16)] = String.fromCharCode(i, j)
}
}
}

function arrDecode(num) {
var na = (num & 0xffff0000) >> 16,
nb = num & 0xffff
return hash2[na] + hash2[nb]
}

makeHash()
document.write(arrDecode(1212504404) + arrDecode(1212502597))

关于javascript - 在 Javascript 中从整数解码固定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161318/

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