Angenommen, ich habe einen Hex-Datenstrom, den ich in 3-Byte-Blöcke teilen möchte, die ich als eine ganze Zahl lesen muss.JavaScript: lesen 3 Bytes Puffer als eine ganze Zahl
Zum Beispiel: Bei einer Hex-Zeichenfolge 01be638119704d4b9a
muss ich die ersten drei Bytes 01be63
lesen und es als Integer 114275
lesen. Das ist, was ich habe:
var sample = '01be638119704d4b9a';
var buffer = new Buffer(sample, 'hex');
var bufferChunk = buffer.slice(0, 3);
var decimal = bufferChunk.readUInt32BE(0);
Die readUInt32BE
funktioniert perfekt für 4-Byte-Daten, aber hier bekomme ich offensichtlich:
RangeError: index out of range
at checkOffset (buffer.js:494:11)
at Buffer.readUInt32BE (buffer.js:568:5)
Wie ich richtig 3-Bytes als ganze Zahl liest?
Danke! Ich muss die 'readUIntBE'-Funktion vermisst haben. Es funktioniert perfekt. – kmachnicki
Um ein paar Mikrosekunden zu sparen: var Dezimal = (((Puffer [0] << 8) + (Puffer [1]) << 8) + Puffer [2]; –