0

我是 Javascript 新手,我需要在字节数组的半字节级别执行操作,不确定,最好的方法是什么。

假设,我有 8 个字节数组和一个字符串为“1111”(字符串始终是数字),现在我需要向字节数组添加条目。

  • 在第一个字节的第一个半字节,它应该是 1
  • 在第一个字节的第二个半字节,它应该是字符串的长度,即 4
  • 在第一个半字节的第二个字节,应插入字符串的第一个数字
  • 在第二个半字节的第二个字节,应插入字符串的第二个数字
  • 第三个也是类似的。

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 
4

0 回答 0