Java целочисленный в байтовый массив - PullRequest
170 голосов
/ 02 февраля 2010

Я получил целое число: 1695609641

когда я использую метод:

String hex = Integer.toHexString(1695609641);
system.out.println(hex); 

дает:

6510f329

но я хочу байтовый массив:

byte[] bytearray = new byte[] { (byte) 0x65, (byte)0x10, (byte)0xf3, (byte)0x29};

Как я могу это сделать?

Ответы [ 13 ]

1 голос
/ 11 февраля 2012

Класс org.apache.hadoop.hbase.util.Bytes имеет несколько удобных методов преобразования byte [], но вы можете не захотеть добавлять весь JBase jar в ваш проект только для этой цели. Удивительно, что не только такой метод пропускает AFAIK из JDK, но также и от очевидных библиотек, таких как обыкновенные io.

1 голос
/ 02 февраля 2010
integer & 0xFF

для первого байта

(integer >> 8) & 0xFF

для второго, цикла и т. Д., Запись в предварительно выделенный байтовый массив. К сожалению, немного грязно.

0 голосов
/ 06 июня 2018

Если вы используете apache-commons

public static byte[] toByteArray(int value) {
    byte result[] = new byte[4];
    return Conversion.intToByteArray(value, 0, result, 0, 4);
}
...