gpt4 book ai didi

javascript - javascript中的字节数组到十六进制字符串的转换

转载 作者:可可西里 更新时间:2023-11-01 01:20:07 26 4
gpt4 key购买 nike

我有一个 [4,-101,122,-41,-30,23,-28,3,..] 形式的字节数组我想以 6d69f597b217fa333246c2c8 的形式转换我正在使用以下功能

function toHexString(bytes) {
return bytes.map(function(byte) {
return (byte & 0xFF).toString(16)
}).join('')
}

这给了我一个相同形式的字符串,但我怀疑这不是一个有效的转换,因为十六进制字符串比预期的要短一些。我认为翻译应该得到“0a10a6dc”。请告诉我我是否错了或者这是一个正确的转换但也许我没有使用正确的字节数组

字节数组4,-127,45,126,58,-104,41,-27,-43,27,-35,100,-50,-77,93,-16,96,105,-101,-63,48,-105,49,-67,110,111,26,84,67,-89,-7,-50,10,-12,56,47,-49,-42,-11,-8,-96,-117,-78,97,-105,9,-62,-44,-97,-73,113,96,23,112,-14,-62,103,-104,90,-14,117,78,31,-116,-7

对应转换4812d7e3a9829e5d51bdd64ceb35df060699bc1309731bd6e6f1a5443a7f9ceaf4382fcfd6f5f8a08bb261979c2d49fb771601770f2c267985af2754e1f8cf9

最佳答案

您在十六进制转换中缺少填充。你会想要使用

function toHexString(byteArray) {
return Array.from(byteArray, function(byte) {
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
}).join('')
}

这样每个字节就可以转换为两个十六进制数字。您的预期输出将是 04812d7e3a9829e5d51bdd64ceb35df060699bc1309731bd6e6f1a5443a7f9ce0af4382fcfd6f5f8a08bb2619709c2d49fb771601770f2c267985af2754e1f8cf9

关于javascript - javascript中的字节数组到十六进制字符串的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34309988/

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