in src/main/java/org/apache/commons/lang3/Conversion.java [439:471]
public static char binaryBeMsb0ToHexDigit(boolean[] src, int srcPos) {
if (src.length == 0) {
throw new IllegalArgumentException("Cannot convert an empty array.");
}
final int beSrcPos = src.length - 1 - srcPos;
final int srcLen = Math.min(4, beSrcPos + 1);
final boolean[] paddedSrc = new boolean[4];
System.arraycopy(src, beSrcPos + 1 - srcLen, paddedSrc, 4 - srcLen, srcLen);
src = paddedSrc;
srcPos = 0;
if (src[srcPos]) {
if (src.length > srcPos + 1 && src[srcPos + 1]) {
if (src.length > srcPos + 2 && src[srcPos + 2]) {
return src.length > srcPos + 3 && src[srcPos + 3] ? 'f' : 'e';
}
return src.length > srcPos + 3 && src[srcPos + 3] ? 'd' : 'c';
}
if (src.length > srcPos + 2 && src[srcPos + 2]) {
return src.length > srcPos + 3 && src[srcPos + 3] ? 'b' : 'a';
}
return src.length > srcPos + 3 && src[srcPos + 3] ? '9' : '8';
}
if (src.length > srcPos + 1 && src[srcPos + 1]) {
if (src.length > srcPos + 2 && src[srcPos + 2]) {
return src.length > srcPos + 3 && src[srcPos + 3] ? '7' : '6';
}
return src.length > srcPos + 3 && src[srcPos + 3] ? '5' : '4';
}
if (src.length > srcPos + 2 && src[srcPos + 2]) {
return src.length > srcPos + 3 && src[srcPos + 3] ? '3' : '2';
}
return src.length > srcPos + 3 && src[srcPos + 3] ? '1' : '0';
}