[英]How to convert int [] to Big Integer?
我想轉換一個整數數組,值原來是字節。
首先,請確保您知道int[]
將以哪種格式解釋。
每個int可以看作由四個字節組成,並且這些字節可以一起轉換為BigInteger。 詳細信息是字節順序-哪個字節最高,哪個字節最低?
另外,您是否有簽名或未簽名的號碼?
將int
轉換為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構造函數(用於無符號)。
好吧,關於新的BigInteger(byte [] val)呢?
引用我鏈接到的API文檔:
將包含BigInteger的二進制補碼二進制表示形式的字節數組轉換為BigInteger。 假定輸入數組為大端字節序:最高有效字節在第零個元素中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.