Какой самый быстрый способ конвертировать java.nio.ByteBuffer a
в (недавно созданный) CharBuffer b
или char[] b
.
При этом важно, чтобы a[i] == b[i]
. Это означает, что не a[i]
и a[i+1]
вместе не составляют значение b[j]
, что getChar(i)
будет делать, но значения должны быть "распространены".
byte a[] = { 1,2,3, 125,126,127, -128,-127,-126 } // each a byte (which are signed)
char b[] = { 1,2,3, 125,126,127, 128, 129, 130 } // each a char (which are unsigned)
Обратите внимание, что byte:-128
имеет те же (младшие 8) биты, что и char:128
. Поэтому я полагаю, что «лучшая» интерпретация будет такой, как я отметил выше, поскольку биты одинаковы.
После этого мне также нужен перевод наоборот : самый эффективный способ вернуть char[]
или java.nio.CharBuffer
обратно в java.nio.ByteBuffer
.