JavaScript Node.Js 缓冲区到二进制

Dr.*_*ugh 7 javascript buffer 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'));
Run Code Online (Sandbox Code Playgroud)

小智 4

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

1如果您想要二进制表示形式,则获取缓冲区的字符串表示形式的最简单方法0是将缓冲区转换为十六进制表示形式,然后将此表示形式解析为 BigInt,获取 BigInt 的基数 2,最后填充带有非有效零的字符串

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