2016-10-05 3 views
-2

내 문제는 바이트 스트림이나 바이트 배열로 구성됩니다. 이이어떻게 문자열 16 진수 표현을 바이트로 변환합니까? - 자바 스크립트

'\u0000' 
'\u0000' 
'\u0001' 
'\u0010' 

아무 문제가 없다하지만 난 (상단 여기 또는 아래) 오른쪽에서 왼쪽으로이

'\u0000' 
'\u0000' 
'\u0000' 
'�' 

같은 일부 특수 문자를 디코딩 할 때 문제는 내가 숫자 값을 얻을 수있다 이 4 바이트에서 1 정수 또는 숫자. 하지만이게 정확한지 모르겠다.

toInt (buff){ 
    console.log('buff ' , typeof buff[0]); 
    for(let b of buff){ 
     console.log('b' , b); 
    } 
    return (buff[3] & 0x000000ff ) | 
     (buff[2] & 0x0000ff00 ) << 8 | 
     (buff[1] & 0x00ff0000) << 16 | 
     (buff[0] & 0xff000000) << 24 ; 
} 
+0

'function' 키워드를 놓친 것이 확실합니다 –

+0

@ Bálint는 기능 키워드가 필요합니까? 왜냐하면 나는 그것없이 함수를 호출 할 수 있기 때문이다. –

+0

100 % 확신합니다. –

답변

1

정확하게 질문을 이해했는지 모르겠지만 16 진수 바이트를 나타내는 문자열 배열을 숫자로 변환하려는 것처럼 들린다.

당신은 같은 것을 사용하여 변환 할 수 있습니다 진수 숫자의 문자열 표현을 가지고있는 경우에 : 버프의 각 요소를 가정

function bufferToInt(buff) { 
    var string = buff.join(''); 
    return parseInt(string, 16); // parseInt allows specifying a base 
} 

bufferToInput(['ff', 'ff']); // This returns 65535 

는 "FF"위 같은 진수 바이트의 문자열 표현을 포함 주로 내장 함수를 사용하여 숫자로 간단하게 변환 할 수 있어야합니다.

관련 문제