簡體   English   中英

node.js - 將一個字節切成位

[英]node.js - Slice a byte into bits

如何從緩沖區中取一個八位字節並將其轉換為二進制序列? 我想通過node.js解碼協議rfc1035 ,但發現很難處理位。

這是一個代碼,但它不適合我 - 因為它對我來說是一個黑盒子:

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

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

使用位掩碼 ,八位位組是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,並使用位掩碼1 << i找到第i位。 如果第i位置位則bit變為1 ,否則為0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM