位操作:更改二进制数组中的单个字符"数组"

时间:2017-02-03 23:10:51

标签: java bit-manipulation

例如,如果我有

long binarynumber=10011;

我想要它

binarynumber=binarynumber>>1;

但是不是丢弃最右边的数字(数字将是5个数字中的01001),我希望它是11001,其中最后一个数字移动到二进制文件的第一位"字符串"。二进制数的值并不重要,因为我将它用作输出的字符串。

1 个答案:

答案 0 :(得分:1)

你在谈论做这样的事吗

public static String circularShiftBinary(long binaryNumber, int shift)
{
    String bin = Long.toString(binaryNumber);
    //check that the shift isn't a fully circular shift
    if(shift % bin.length() != 0)
        while(shift-- > 0)
            bin = bin.charAt(bin.length() - 1) + bin.substring(0, bin.length() - 1);

    return bin;
}

变体示例调用

public static void main(String[] args) {
    long binaryNumber = 10011;
    int shift = 0;

    while(shift < 6)
        System.out.println(circularShiftBinary(binaryNumber, shift++));
}//main method

输出

10011
11001
11100
01110
00111
10011