java - 位操作 : changing a single char in the binary "array"

标签 java bit-manipulation

例如,如果我有

long binarynumber=10011;

我想要它这样做

binarynumber=binarynumber>>1;

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

最佳答案

你是在说做这样的事情吗

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

关于java - 位操作 : changing a single char in the binary "array",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42034469/

相关文章:

java - 如何在play框架中使用多个实体管理器-使用spring data JPA?

c - 按位移位使我的程序停止?

c++ - 如何设置、清除和切换单个位?

java - synchronized (vector<vector>) 是锁定所有 Vector 还是只锁定存储它们的 Vector?

java - Spring 3 with Tiles 2.2.2 - 获取 "Servlet spring is currently unavailable"

c++ - 具有非八位字节对齐子字段的 96 位长位字段

c++ - 属性存在通用检查

C - 解码 base64 时的位移位

java - 如何为其余 WS 编写单元测试用例

Java 在负坐标上绘制图像