@DoctorSlon

Как упаковать массив int в массив char максимально компактно?

Здравствуйте!

Основной вопрос в заголовке.

Сейчас использую такой алгоритм:
int -> byte[4] -> char[4]

Интуитивно понятно, что можно упаковать компактней, т.к. диапазон byte сильно меньше диапазона char, но вот алгоритм придумать не могу.
  • Вопрос задан
  • 556 просмотров
Решения вопроса 1
import java.nio.ByteBuffer;
import java.nio.CharBuffer;

public class main {
	public static void main(String[] args) {
		int myint = 5120013;

		ByteBuffer b = ByteBuffer.allocate(4);
		b.asIntBuffer().put(myint);

		CharBuffer cb = b.asCharBuffer();

		char[] result  = new char[cb.limit()];
		cb.get(result);

		System.out.format("Char count: %d\n", result.length);
		System.out.print("0x");
		for(char c: result) {
			System.out.format("%04x", (int) c);
		}
		System.out.println();
	}
}
stdout
Char count: 2
0x004e200d

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы