in gflog-core/src/main/java/com/epam/deltix/gflog/core/util/Formatting.java [1061:1095]
public static int formatUInt9Digits(@Nonnegative int value,
final @Nonnull MutableBuffer buffer,
final @Nonnegative int offset) {
// Preconditions:
// assert value >= 0 && value <= 999999999;
// assert buffer != null;
// assert offset >= 0;
int newValue = (int) (2748779070L * (long) value >>> 38);
int remainder = value - 100 * newValue;
short digits = UNSAFE.getShort(ADDRESS_OF_DIGITS_TABLE + (remainder << 1));
buffer.putShort(offset + 7, digits);
value = (int) (2748779070L * (long) newValue >>> 38);
remainder = newValue - 100 * value;
digits = UNSAFE.getShort(ADDRESS_OF_DIGITS_TABLE + (remainder << 1));
buffer.putShort(offset + 5, digits);
newValue = (int) (2748779070L * (long) value >>> 38);
remainder = value - 100 * newValue;
digits = UNSAFE.getShort(ADDRESS_OF_DIGITS_TABLE + (remainder << 1));
buffer.putShort(offset + 3, digits);
value = (int) (2748779070L * (long) newValue >>> 38);
remainder = newValue - 100 * value;
digits = UNSAFE.getShort(ADDRESS_OF_DIGITS_TABLE + (remainder << 1));
buffer.putShort(offset + 1, digits);
buffer.putByte(offset, (byte) (value + ZERO));
return offset + 9;
}