in src/main/java/org/apache/commons/codec/binary/Base16.java [216:241]
void encode(final byte[] data, final int offset, final int length, final Context context) {
if (context.eof) {
return;
}
if (length < 0) {
context.eof = true;
return;
}
final int size = length * BYTES_PER_ENCODED_BLOCK;
if (size < 0) {
throw new IllegalArgumentException("Input length exceeds maximum size for encoded data: " + length);
}
final byte[] buffer = ensureBufferSize(size, context);
final int end = offset + length;
for (int i = offset; i < end; i++) {
final int value = data[i];
final int high = (value >> BITS_PER_ENCODED_BYTE) & MASK_4BITS;
final int low = value & MASK_4BITS;
buffer[context.pos++] = encodeTable[high];
buffer[context.pos++] = encodeTable[low];
}
}