例如,如果我有
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/