2010-10-29 25 views
1

我有一個char數組「數據」和一個Int32「dictIdFrame」。我希望dictIdFrame採用數據[i,...,i + 3]的ASCII(0-255)的值,我的意思是這四個字節變成一個int32,其中data [i]不太重要,data [i + 3]在這個int32中是最重要的。我真的不知道該怎麼做...字符數組到Int32的Javascript

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
// 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)