Как добавить мудрую запись в массив байтов

#javascript #arrays #byte #nibble

Вопрос:

Я новичок в Javascript, и мне нужно выполнить операцию на уровне кусочка в массиве байтов, не зная, как это лучше всего сделать.

Предположим, у меня есть массив из 8 байтов и одна строка «1111» (строка всегда будет числом), теперь мне нужно добавить запись в массив байтов.

  • При первом откусе первого байта он должен быть 1
  • При втором откусе первого байта он должен быть длиной строки, т. е. 4
  • На 2-м байте первого откуса должна быть вставлена первая цифра из строки
  • На 2-м байте 2-го откуса должна быть вставлена 2-я цифра из строки
  • аналогично и для 3-го тоже.

Код Javascript (работает только тогда, когда строковое значение «1111», не работает для любого другого числа)

 var arr = new Uint8Array([-1,-1,-1,-1,-1,-1,-1,-1]);
arr[0] = bitwise.byte.write([0,0,0,1,0,1,1,1]);    
var str ="1111";
var j=1;
for(var i=0; i< str.length; i = i 2){
arr[j] = parseInt(str[i].toString(2).padStart(4,"0")   parseInt(str[i 1]).toString(2).padStart(4,"0");
j  ;
}
console.log(arr);
 

Выход:

 when str = "1111"
20,17,17,255,255,255,255,255 // correct behaviour

when str = "2222"
20,170,170,255,255,255,255,255 // incorrect output
Expected : 20,34,34,255,255,255,255,255