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

发布于 2024-10-26 18:26:39 字数 598 浏览 4 评论 0原文

如果移位并不总是相同,即我可能必须使用相同的函数来调整 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”不固定时,我不知道如何执行此操作。

If the shifting is not always the same, i.e I may have to use the same function to resize 2 or 4 characters, what would be a good way to circular shift the values of an array of bytes 2 positions * a parameter? This is what I have so far

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

Summing up, I have to circular shift the values of myArray twice times param and return the result in the array 'result'. I don't get how to do this when the parameter 'param' is not fixed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

老娘不死你永远是小三 2024-11-02 18:26:39

第一:如果可能,请使用 java.util.BitSet 来执行此类任务。

我不确定,但不知何故 BitSet 本身没有转变,但 这个来源 看起来它实现了它。

First: If possible, use java.util.BitSet for tasks like that.

I am not sure, but somehow BitSet itself does not have shift, but this source looks it implemented it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文