在java中实现循环数组字节移位的最佳方法是什么?
如果移位不总是相同的,即我可能必须使用相同的函数来调整2或4个字符的大小,那么如何将字节数组的值循环移位到2个位置*一个参数?这就是我目前所拥有的在java中实现循环数组字节移位的最佳方法是什么?,java,bytearray,bit-shift,Java,Bytearray,Bit Shift,如果移位不总是相同的,即我可能必须使用相同的函数来调整2或4个字符的大小,那么如何将字节数组的值循环移位到2个位置*一个参数?这就是我目前所拥有的 for(int j=0; j<param; j++){ if(j == 0){ for(int i=0; i<myArray.length;i++){ result[i] = (byte) (myArray[i]<<2); }
for(int j=0; j<param; j++){
if(j == 0){
for(int i=0; i<myArray.length;i++){
result[i] = (byte) (myArray[i]<<2);
}
} else{
for(int i=0; i<result.length;i++){
if((result.length-i) > 2){
result[i] = (byte) (result[i]<<2);
}
}
}
}
总之,我必须将myArray的值循环移位两次乘以param,并在数组“result”中返回结果。当参数'param'不固定时,我不知道如何执行此操作 首先:如果可能,对类似的任务使用java.util.BitSet
我不确定,但不知何故,位集本身没有移位,但看起来它实现了移位。您的代码有问题。ifparam==0的条件永远不能满足,因为j永远不能<0。该死,我是指j而不是param。我将编辑它为什么位集比使用标准字节[]数组更好?