我有一个字节数组需要重新打包成一个长整型数组。输入的字节数组大小未知(大约从0到几百个)。长整型数组需要右对齐,即最低索引长整型应填充零,其他所有长整型都应填满输入字节:
(b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11) --> (xxxxb0b1b2b3, b4b5b6b7b8b9b10b11)
其中b1、b2等是给定的字节。 我有一个解决方案,但不够简洁易读:
有没有更简洁的方式来完成这个任务?
其中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;
}
有没有更简洁的方式来完成这个任务?