簡體   English   中英

怎么把int []轉換成Big Integer?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM