Я получил целое число: 1695609641
когда я использую метод:
String hex = Integer.toHexString(1695609641);
system.out.println(hex);
дает:
6510f329
но я хочу байтовый массив:
byte[] bytearray = new byte[] { (byte) 0x65, (byte)0x10, (byte)0xf3, (byte)0x29};
Как я могу сделать это?
Ответы:
использовать Java NIO ByteBuffer очень просто:
вывод:
источник
"0x%02X"
если вам всегда нужны два шестнадцатеричных символа, а также шестнадцатеричные символы в верхнем регистре, например,System.out.format("0x%02X", (byte) 10)
дисплеи0x0A
.Как насчет:
Идея не моя . Я взял это из некоторого поста на dzone.com .
источник
>>>
а не оператор смещения вправо>>
( docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html ), поэтому поведение может быть не таким, как хотелось бы / как и ожидалось, соBigInteger.valueOf(1695609641).toByteArray()
источник
BigInteger.toByteArray()
состоянии: «Массив будет содержать минимальное количество байтов, необходимое для представления этого BigInteger ...»источник
Использование гуавы :
источник
источник
источник
Чанки ниже работают как минимум для отправки int через UDP.
int в байтовый массив:
байтовый массив для int:
источник
Поскольку обычно вы захотите преобразовать этот массив обратно в int на более позднем этапе, вот методы преобразования массива int в массив байтов и наоборот:
Обратите внимание, что из-за распространения знака и тому подобного "& 0xFF ..." необходимы при преобразовании обратно в int.
источник
за первый байт
для второго и цикла и т. д., запись в предварительно выделенный байтовый массив. К сожалению, немного грязно.
источник
Класс org.apache.hadoop.hbase.util.Bytes имеет несколько удобных методов преобразования byte [], но вы можете не захотеть добавлять весь JBase-jar в ваш проект только для этой цели. Удивительно, что не только такой метод пропускает AFAIK из JDK, но также и от очевидных библиотек, таких как обыкновенные.
источник
Моя попытка:
С его помощью вы можете сделать это:
Полный класс здесь: https://gist.github.com/superbob/6548493 , он поддерживает инициализацию от коротких или длинных
источник
Если вы используете Apache-Commons
источник