Diyelim ki bir tamsayı olarak okumam gereken 3 baytlık bloklara bölmek istediğim bir hex veri akışı var.JavaScript: 3 bayt okuma Tamsayı olarak arabellek
Örneğin: onaltılık bir dize 01be638119704d4b9a
verilen ilk üç bayt 01be63
okumanız ve 114275
tamsayı olarak okudum. Bu bende ne olduğunu:
var sample = '01be638119704d4b9a';
var buffer = new Buffer(sample, 'hex');
var bufferChunk = buffer.slice(0, 3);
var decimal = bufferChunk.readUInt32BE(0);
readUInt32BE
eserler mükemmel 4-byte veri için, ama burada açıkçası olsun: Ben doğru tamsayı olarak 3-byte okumak nasıl
RangeError: index out of range
at checkOffset (buffer.js:494:11)
at Buffer.readUInt32BE (buffer.js:568:5)
?
var decimal = buffer.readUIntBE(0, 3);
(o Little için büyük Endian için readUIntBE
ve readUIntLE
olduğunu Not:
Teşekkürler! Bu readUIntBE işlevini kaçırmış olmalı. Mükemmel çalışıyor. – kmachnicki
Birkaç mikrosaniyeyi kaydetmek için: ondalık = (((tampon [0] << 8) + (tampon [1]) << 8) + buffer [2]; –