gpt4 book ai didi

javascript - 将二进制 ArrayBuffer/TypedArray 数据转换为十六进制字符串

转载 作者:行者123 更新时间:2023-11-28 16:55:38 31 4
gpt4 key购买 nike

我想从我正在读取的二进制文件中获取校验和字符串。校验和由 Uint32 值表示,但如何将其转换为文本?整数值为1648231196,相应的文本应为“1c033e62”(通过元数据实用程序获知)。请注意,我并不是尝试计算校验和,只是尝试将表示校验和的字节转换为字符串。

最佳答案

有两种方法可以读取字节,Big-Endian and Little-Endian .

嗯,您提供的“校验和”是 Little-Endian 中的“十六进制”。因此我们可以创建一个缓冲区并设置指定 Little-Endian 表示形式的数字。

// Create the Buffer (Uint32 = 4 bytes)
const buffer = new ArrayBuffer(4);

// Create the view to set and read the bytes
const view = new DataView(buffer);

// Set the Uint32 value using the Big-Endian (depends of the type you get), the default is Big-Endian
view.setUint32(0, 1648231196, false);

// Read the uint32 as Little-Endian Convert to hex string
const ans = view.getUint32(0, true).toString(16);

// ans: 1c033e62

始终在 DataView.setUint32 中指定第三个参数第二个在 DataView.getUint32 。这定义了“Endian”的格式。如果不设置它,您可能会得到意想不到的结果。

关于javascript - 将二进制 ArrayBuffer/TypedArray 数据转换为十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59292543/

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