我試圖做一個方法,在使用BitSet
在Java中環繞左移,但我無法弄清楚如何讓它執行環繞。現在我的方法只是刪除第一位,並保留其餘部分,而不是將第一位添加到最後。BitSet LeftShift環繞問題
public static BitSet leftShift(int amount, BitSet b){
BitSet bit2 = new BitSet(b.length());
for(int i = b.length(); i > 0; i--){
bit2.set((i-amount)%b.length(), b.get(i));
}
return bit2;
}
通過「左移」你的意思是朝着更顯著以下顯著位轉移?你的代碼似乎試圖轉向不那麼重要,這通常被稱爲右移。 – Misha
切換到較低有效位。所以11011將會是10111,並且會向左移動一次。 – user3614496