javascript - 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'));
解决方案
根据文档 'binary'
是一个别名'latin1'
如果你想要一个二进制表示,最简单的方法是获取缓冲区的字符串表示,1
并且0
是将缓冲区转换为十六进制表示,然后将此表示解析为 BigInt,获取 BigInt 的基数 2,最后填充具有非重要零的字符串
function buf2bin (buffer) {
return BigInt('0x' + buffer.toString('hex')).toString(2).padStart(buffer.length * 8, '0')
}
推荐阅读
- python - 成对余弦相似度 Python
- python - JSON保存到文件获取方法
- oracle - 无法从远程客户端插入 oracle bfile 数据类型列
- symfony-forms - Symfony 3.4 形式:将变量从一种类型传递到另一种类型
- c++ - 将(C 类)指针转换为 C++ 矩阵
- node.js - 当 content-type 设置为 image 时 res.send(imgPath) 不发送图像
- robotframework - ImapLibrary - Robotframework:当邮箱中没有邮件时关键字“等待电子邮件”
- c# - 为 pyCaffe 编写调试器可视化工具?
- javascript - Javascript 正则表达式主机名
- excel - 打开工作簿脚本卡在私有子中的循环中