gpt4 book ai didi

javascript - 使用 DataView 读取 ArrayBuffer 中的 Int64

转载 作者:行者123 更新时间:2023-11-30 00:24:44 28 4
gpt4 key购买 nike

我正在使用网络套接字。

我正在将 ArrayBuffer 传递到我的 JavaScript 页面。

我在 C# 代码中有这个:

 byte[] packet = new byte[2];
packet[0] = (byte)1;
packet[1] = (byte)0;

byte[] tickArray = BitConverter.GetBytes( 635744635349556838 );
byte[] packet2 = new byte[2 + tickArray.Length];
Buffer.BlockCopy(packet, 0, packet2, 0, packet.Length);
Buffer.BlockCopy(tickArray, 0, packet2, packet.Length, tickArray.Length);

在我的 JavaScript 客户端中我有这个:

 var dv = new DataView(e.data);
var marker = dv.getInt8(0);
var tripped = dv.getInt8(1);

var x = dv.getInt8(2);

我得到了结果:

1
0
-29

如果更改为:

var x= dv.getInt16(1);

-7389

如何获取 635744635349556838 的值?

谢谢

最佳答案

我写了一段代码。会有帮助吗?

function getUint64(bytes, littleEndian)
{
var low = 4, high = 0;
if (littleEndian)
{
low = 0;
high = 4;
}

var dv = new DataView(Uint8Array.from(bytes ).buffer);

return (dv.getUint32(high, littleEndian) << 32) |
dv.getUint32(low, littleEndian);
}
var bytes = [ 124, 22, 124, 22, 124, 22, 124, 22];
var value = getUint64(bytes, false);
console.log(value);

关于javascript - 使用 DataView 读取 ArrayBuffer 中的 Int64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31857374/

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