有没有一种方法可以将整数转换为二进制数字,而不使用
我的任务是这样的:(https://open.kattis.com/problems/reversebinary)
插入一个整数并通过Scanner帮助进行转换为二进制。 反转二进制。 打印出新的整数。
例如,数字11在二进制中为1011。 现在反转二进制数1011,您会得到1101(即数字13),然后打印出13。
这就是我得到的,但仍然使用了
Integer.toBinaryString
方法? 我试图找出转换算法,但没有成功。我的任务是这样的:(https://open.kattis.com/problems/reversebinary)
插入一个整数并通过Scanner帮助进行转换为二进制。 反转二进制。 打印出新的整数。
例如,数字11在二进制中为1011。 现在反转二进制数1011,您会得到1101(即数字13),然后打印出13。
这就是我得到的,但仍然使用了
Integer.toBinaryString
方法,我得到了NumberFormatException
。int reverse = 0;
int number, binary;
Scanner scn = new Scanner(System.in);
number = scn.nextInt();
String b = Integer.toString(number, 2);
binary = Integer.parseInt(b);
while (binary != 0) {
reverse = reverse * 10 + binary % 10;
binary = binary / 10;
}
int newNumber = Integer.parseInt(String.valueOf(reverse), 2);
System.out.println(newNumber);
}
}