首页 > 解决方案 > JavaScript Node.Js 缓冲区到二进制

问题描述

我在 Node.JS 缓冲区的帮助下发送和接收数据包,但我不确定如何将这些缓冲区转换为二进制表示。我试过了,但没有用

let buff = Buffer.alloc(10);
buff[0] = 10;
buff[1] = 16;
buff[2] = 20;
buff[3] = 32;
buff[4] = 9;

console.log(buff);
console.log(buff.toString('binary'));

标签: javascriptnode.jsbuffer

解决方案


根据文档 'binary'是一个别名'latin1'

如果你想要一个二进制表示,最简单的方法是获取缓冲区的字符串表示,1并且0是将缓冲区转换为十六进制表示,然后将此表示解析为 BigInt,获取 BigInt 的基数 2,最后填充具有非重要零的字符串

function buf2bin (buffer) {
  return BigInt('0x' + buffer.toString('hex')).toString(2).padStart(buffer.length * 8, '0')
}

推荐阅读