-3
我試圖將160長度的二進制字符串轉換爲20個字節。我正在使用BigInteger來獲取一個字節數組。它只返回14個字節,我需要20個字節。使用BigInteger獲取字節數組給予二進制字符串,返回的字節數組dosen的包含0值字節
這裏是我的代碼:
BigInteger b = new BigInteger("0000000000000000000000000000000000000000000001010000000000000000000000000000010000010100001011111110000000000000000000000000000000000000000000000000000000000000", 2);
byte[] newData = b.toByteArray();
ByteArrayOutputStream output = new ByteArrayOutputStream(20);
for (int i = 0; i < 20 - newData.length; i++) {
output.write((byte) 0x00);
}
output.write(newData);
newData = output.toByteArray();
這樣做的目的是什麼?你可以正常創建一個字節數組,儘管你認爲我確信bigInteger正在做轉換正確 – aaronman
你甚至讀過'toByteArray()'的文檔嗎? 「該數組將包含表示此BigInteger所需的最小字節數」。它修剪了前面的零,畢竟它期望處理數字。 –
爲什麼你試圖在160字節中填入8個字節? – user2357112