Во-первых, убедитесь, что вы знаете, в каком формате должна интерпретироваться ваша int[]
.
Каждое int может рассматриваться как состоящее из четырех байтов, и эти байты вместе могут быть преобразованы в BigInteger.Детали - это порядок байтов - какой байт является самым, а какой - наименее значимым?
Кроме того, у вас есть число со знаком или без знака?
Простой способ преобразования вашего int
s до byte
s (для последующего использования в конструкторе BigInteger) будет использовать ByteBuffer
и оборачивать IntBuffer вокруг него.
public BigInteger toBigInteger(int[] data) {
byte[] array = new byte[data.length * 4];
ByteBuffer bbuf = ByteBuffer.wrap(array);
IntBuffer ibuf = bbuf.asIntBuffer();
ibuf.put(data);
return new BigInteger(array);
}
Очевидной адаптацией будет установка порядка байтов bbuf
, или используйте другой конструктор BigInteger (для неподписанных).