gpt4 book ai didi

javascript - node.js - 将一个字节切片成位

转载 作者:搜寻专家 更新时间:2023-10-31 23:43:25 24 4
gpt4 key购买 nike

如何从缓冲区中取出一个八位位组并将其转换为二进制序列?我想解码协议(protocol) rfc1035通过 node.js 但发现很难使用位。

这是一个代码,但它不适合我——因为它对我来说是一个黑盒子:

var sliceBits = function(b, off, len) {
var s = 7 - (off + len - 1);

b = b >>> s;
return b & ~(0xff << len);
};

最佳答案

使用 bitmask , 八位字节是 8 位,因此您可以执行以下操作:

for (var i = 7; i >= 0; i--) {
var bit = octet & (1 << i) ? 1 : 0;
// do something with the bit (push to an array if you want a sequence)
}

示例:http://jsfiddle.net/3NUVq/

您或许可以提高效率,但方法非常简单。这遍历偏移量 i , 从 7 下降到 0, 并找到 i使用位掩码的第 bit 1 << i .如果i然后设置第 1 位 bit变成 1 , 否则它将是 0 .

关于javascript - node.js - 将一个字节切片成位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com