代码之家  ›  专栏  ›  技术社区  ›  mpen

如何将64位bigint写入缓冲区?

  •  3
  • mpen  · 技术社区  · 7 年前

    是否可以将64位bigints写入 Buffer 在node.js(10.7+)中?

    还是我还得做两次手术?

    let buf = Buffer.allocUnsafe(16);
    buf.writeUInt32BE(Number(time>>32n),0,true);
    buf.writeUInt32BE(Number(time&4294967295n),4,true);
    

    我找不到任何有前途的东西 the docs 但是还有其他几乎没有记录的方法,比如 BigInt.asUintN 所以我想我会问。

    2 回复  |  直到 6 年前
        1
  •  1
  •   froglegs    7 年前

    我刚刚遇到了一个类似的问题(需要构建和写入64位ID,包括41位时间戳、13位节点ID和10位计数器)。使用buf.writeIntle()可以写入缓冲区的最大单个值是48位。所以我最终独立地建立/编写了高48位和低16位。如果有更好的方法,我不知道。

        2
  •  0
  •   Yevgeny Kolesnik    7 年前
    推荐文章