Java中的有关问题,不明白这样写是什么意思?各位大神可以解释一下么?代码如下

Java中的问题,不明白这样写是什么意思?各位大神可以解释一下么?代码如下:

input是一个byte型的数组,然后有以下的代码,得到一个字符串sb;

StringBuffer sb = new StringBuffer(input.length * 2);

static final char[] HEX_TABLE = new char[] { '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

for (int i = 0; i < input.length; i++) {
    sb.append(HEX_TABLE[(input[i] >> 4) & 0xf]);
    sb.append(HEX_TABLE[input[i] & 0xf]);
}

sb.toString();


上面红色字体部分有什么作用?请帮忙解释一下,谢谢!!!
Java

------解决方案--------------------
转16进制显示。。。