请帮助理解以下代码中的行(粗体) -
public static byte[] stringToBytesUTFCustom(String str) {
char[] buffer = str.toCharArray();
byte[] b = new byte[buffer.length << 1];
for(int i = 0; i < buffer.length; i++) {
int bpos = i << 1;
b[bpos] = (byte) ((**buffer[i]&0xFF00)>>8**);
b[bpos + 1] = (byte) (**buffer[i]&0x00FF**);
}
return b;
}
这是从http://www.javacodegeeks.com/2010/11/java-best-practices-char-to-byte-and.html检索的 在这些特定行中执行的确切操作是什么?