Допустим, есть массив нескольких байт. Как из них сделать битовый массив?
Можно выделять биты с помощью битовых масок:
let input = [0x00, 0x0F, 0xF0, 0xFF];
// Построим маски
let arr8 = new Array(8).fill(0);
let masks = arr8.map((_, i) => 1 << i);
// bool биты
let boolbits = input.map(byte => masks.map(mask => !!(byte & mask)));
// char биты
let charbits = input.map(byte => masks.map(mask => byte & mask?'1':'0'));
// int биты
let intbits = input.map(byte => masks.map(mask => byte & mask ? 1 : 0).reverse()).reduce((a, b) => a.concat(b), [])
console.log(charbits.map(byte => byte.reverse().join('')));
console.log(JSON.stringify(intbits))
Можно с помощью сдвига:
let input = [0x00, 0x0F, 0xF0, 0xFF];
let bits = input.map(byte => {
let bits = [];
for (let i = 0; i < 8; i++) {
bits.unshift(byte & 1); // В этот раз изменим порядок, младший бит будет последним
byte = byte >> 1;
}
return bits;
});
// Можно собрать все биты в один массив
let result = bits.reduce((c, a) => c.concat(a));
console.log(result);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не могу понять, зачем в данной функции использовать Objectprototype для того, чтобы проверить input и определить String ли это? В чем разница использования...
На сайте есть слайдер, который отображает видео, приходящее из сторонник сервисов (YouTube, vimeo), загружаемое в iframeМне нужно прокрутить слайдер...
Написал небольшую библиотеку и теперь пытаюсь перевести её на ES6 но и сделать версию для обычного использования, чтобы просто подключить...
Всем привет! Вообщем не могу понять как сделать так чтобы когда наводишь мышку на субтитры в видео, то они передаются в переменнуюИспользую...