我有一個字節數組需要重新打包爲一個long數組。輸入字節數組的大小未知(大約從0到幾百)。長陣列需要出來右對齊即最低索引long應該用零填充,所有其他應該填滿輸入字節: 。 (b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11)→(xxxxb0b1b2b3,b4b5b6b7b8b9b10b11)在java中將byte []轉換爲long []
其中b1,b2等是給定字節。 我有一個解決方案,但它不是很整齊或可讀:
// outArr has length (inArr.length+7)/8
for (int i = 0; i < inArr.length ; i++) {
outArr[outArr.length - i/8 - 1] |= ((long)inArr[inArr.length - i - 1]) << (i % 8) * 8;
}
有沒有這樣做的不太醜陋的方式?
請看看http://stackoverflow.com/questions/4485128/how-doi-i-轉換長字節返回in-java –