在Javascript中将字符数组添加到Int32

时间:2010-10-29 18:32:39

标签: javascript ascii

我有一个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]
}

如果可能,只需一条指令。感谢您的帮助!!

1 个答案:

答案 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的数字。)