Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中实现循环数组字节移位的最佳方法是什么?_Java_Bytearray_Bit Shift - Fatal编程技术网

在java中实现循环数组字节移位的最佳方法是什么?

在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); }

如果移位不总是相同的,即我可能必须使用相同的函数来调整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); 
            }
        } 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。我将编辑它为什么位集比使用标准字节[]数组更好?