node.js - 如何将 64 位 BigInt 写入缓冲区?
问题描述
是否可以将 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);
我在文档中找不到任何有希望的东西,但是还有其他几乎没有记录的方法,例如BigInt.asUintN
,所以我想我会问。
解决方案
我刚刚遇到了类似的问题(需要构建和编写由 41 位时间戳、13 位节点 ID 和 10 位计数器组成的 64 位 ID)。我能够写入缓冲区的最大单个值是使用 buf.writeIntLE() 的 48 位。所以我最终独立地构建/写入了高 48 位和低 16 位。如果有更好的方法来做到这一点,我不知道。
推荐阅读
- pdfbox - 如何在硒中解析pdf
- d3.js - 在D3 forceSimulation中拖动一个节点时停止移动其他节点
- r - 带有 %>% 的多个条件
- c# - 在不阻塞主线程的情况下向盲文显示器发送延迟消息
- magento-1.9 - magento 1.9 自定义模块网格
- c# - 请求正文对象的各个成员的 C# swagger 文档
- java - Spring Boot 2 - 在 null 上找不到属性或字段“entitiesProperties”
- eclipse - 当列组在 NatTable 中折叠/展开时,有没有办法自动调整百分比列的大小
- javascript - 使用 GTAG 事件将下拉列表中的选定项目发送到 Google Analytics
- jquery - 元素上的活动类(导航栏)