Chronicle Bytes: как записывать байты в обратном порядке на машине с прямым порядком байтов?

я использую Bytes<U>Интерфейс отсюда . Базовый буфер создается следующим образом:

      Bytes<?> buf = Bytes.elasticHeapByteBuffer(MAX_SIZE);
buf.writeLong(l);   // writes in little endian

Учитывая, что мой машинный порядок байтов имеет обратный порядок байтов, как я могу вместо этого писать байты в обратном порядке?

Спасибо.

Редактировать: согласно этой диаграмме кажется, что байты хроники не поддерживают эту функцию.

1 ответ

Базовая реализация использует любой собственный порядок байтов ЦП. т.е. с прямым порядком байтов на amd64 и ARM, с прямым порядком байтов на Sparc.

Вы можете поменять порядок с

      Bytes<?> buf = Bytes.elasticHeapByteBuffer(MAX_SIZE);
buf.writeLong(Long.reverseLong(l));

long l2 = Long.reverseLong(buf.readLong(l));

Большинство компьютеров в наши дни имеют обратный порядок байтов, поэтому это проблема только при обмене данными с системой с прямым порядком байтов.

Другие вопросы по тегам