例如,如果我有
long binarynumber=10011;
我想要它
binarynumber=binarynumber>>1;
但是不是丢弃最右边的数字(数字将是5个数字中的01001),我希望它是11001,其中最后一个数字移动到二进制文件的第一位"字符串"。二进制数的值并不重要,因为我将它用作输出的字符串。
答案 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