/** *GetsthenumberofbytesintheunsignedLEB128encodingofthe *givenvalue. * *@paramvaluethevalueinquestion *@returnitswritesize,inbytes
*/ publicstaticint unsignedLeb128Size(int value) { // TODO: This could be much cleverer.
int remaining = value >> 7; int count = 0;
while (remaining != 0) {
remaining >>= 7;
count++;
}
return count + 1;
}
/** *Readsansignedintegerfrom{@codein}.
*/ publicstaticint readSignedLeb128(ByteInput in) { int result = 0; int cur; int count = 0; int signBits = -1;
do {
cur = in.readByte() & 0xff;
result |= (cur & 0x7f) << (count * 7);
signBits <<= 7;
count++;
} while (((cur & 0x80) == 0x80) && count < 5);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.