2016-10-05 5 views
-2

Mein Problem besteht aus Bytestrom oder Array von Bytes. Diese ist kein Problem mit diesenWie konvertiere ich String Hexadezimaldarstellung in Byte? - Javascript

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

Aber das Problem liegt, wenn ich dekodieren einige Sonderzeichen wie diese

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

von rechts nach links (oder hier unten nach oben) Ich kann den numerischen Wert erhalten von diesen 4 Bytes zu 1 Integer oder Zahl. aber ich weiß nicht, ob dies richtig ist

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

Ich bin 99 & sicher, dass Sie das Schlüsselwort 'function' verpasst haben –

+0

@ Bálint sind Sie sicher, ich brauche ein Funktionsstichwort? Denn ich kann meine Funktion ohne es aufrufen. –

+0

Ich bin 100% sicher darin –

Antwort

1

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstanden habe, aber klingt wie Sie ein Array von Strings konvertieren möchten, die hex Bytes in eine Reihe stellen.

Wenn Sie noch eine String-Darstellung von Hex-Zahlen bekommen man sich mit so etwas wie umwandeln könnte:

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

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

jedes Element in Buff eine String-Darstellung von einem Hex-Byte wie „ff“ enthielt Unter der Annahme der oben sollte eine einfache Umwandlung in eine Zahl mit hauptsächlich eingebauten Funktionen ermöglichen.

Verwandte Themen