从Node js缓冲区读取UINT 128



我正在编程一个节点JS客户端,该端子正在查询第三方服务器以获取信息。我从第三方服务器收到的消息的一部分是UINT 128(在文档中指定(。但是,据我所知,NodeJS缓冲区不支持从缓冲区读取128位INT。我已经检查了此页面,并且两个最有可能的功能(阅读bigints和读取未指定的字节长度ints(都不支持128位整数。

我已经尝试安装和使用大型模块,但是如果那是正确的方法,我无法理解如何将Buffer从缓冲区中读取到大型对象中。

如何从nodejs缓冲区中读取UINT128?我愿意在必要时使用一些算术,我只是不确定如何。

我通过在数据维图上使用getBiguint64两次使用getBiguint64,然后在两者上调用tostring,将琴弦的串联和解析串成一个笨拙...它很愚蠢,但它似乎可以正常工作。您也许还可以使用位操作员来对抗64位bigints,但我没有尝试过。

readUInt128() {
    let a = this.readUInt64();
    let b = this.readUInt64();
    return BigInt(a.toString() + b.toString());
}
readUInt64() {
    let result = this.view.getBigUint64(this.pos, this.littleEndian)
    this.pos += 8
    return result
}

最新更新