我有一个char数组“data”和一个Int32“dictIdFrame”。我想dictIdFrame取数据[i,...,i + 3]的ASCII(0-255)值,我的意思是四个字节成为单个int32,其中data [i]不太重要且数据[i + 3]是这个int32中最重要的。我真的不知道怎么做......
var data = "asdfasdfasdfasdf";
for (var i=1; i<data.length; i++)
{
var dictIdFrame = // Here statement taking data[i],data[i+1],data[i+2],data[i+3]
}
如果可能,只需一条指令。感谢您的帮助!!
答案 0 :(得分:2)
// assume in group of 4:
for (var i = 0; i < data.length; i += 4) {
var a = data.charCodeAt(i);
var b = data.charCodeAt(i+1);
var c = data.charCodeAt(i+2);
var d = data.charCodeAt(i+3);
var dictIdFrame = a | b << 8 | c << 16 | d << 24;
}
(但请注意,Javascript中的字符串包含UTF-16字符,而不是ASCII字节。因此,.charCodeAt
可能会返回≥256的数字。)