Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Slice a byte into bits (https://javascript.ru/forum/misc/40446-slice-byte-into-bits.html)

Kolomnitcki 06.08.2013 00:17

Slice a byte into bits
 
всем привет.
скажите, как читать побайтно из буфера? (node.js)
есть функция, которая это делает, но комментарий к ней как бы намекает.
я вообще не понимаю что тут происходит.
есть менее сложные способы?
/*
 * Slice a byte into bits using black magic
 */
sliceBits = function(b, off, len) {
  var s = 7 - (off + len - 1);

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

Kolomnitcki 07.08.2013 00:33

как подсказали, более простой вариант выглядит так:

tmpSlice = new Buffer(1) // буфер размером 1 октет
req.copy(tmpSlice, 0, 2, 3);  //копируем в него нужный байт
tmpByte = tmpSlice.toString('ascii', 0, 1).charCodeAt(0); 
var octet = tmpByte;
var bits = [0]; // лучше подсказать V8 какой будет массив, а не определять его пустым.
for (var i = 7; i >= 0; i--) {
   var bit = octet & (1 << i) ? 1 : 0;
   bits.push(bit);
}
console.log(bits)


Часовой пояс GMT +3, время: 07:06.