我如何将int = 43707转换为另外两个数字。第一个数字由奇数位的值产生。第二个数字由偶数位的值组成。
对不起我的语法。
int x = 43707; // 1010101010111011…
我想到了这个:
int x = 43707; String binary = Integer.toBinaryString(x); System.out.println("binary=" + binary); String odds = ""; String evens = ""; for (int i = binary.length() - 1; i >= 0; i--) { if ((i + 1) % 2 == 0) { odds += binary.charAt(i); } else { evens += binary.charAt(i); } } System.out.println("odds=" + odds); System.out.println("evens=" + evens); int odd = Integer.parseInt(odds, 2); int even = Integer.parseInt(evens, 2); System.out.println("number from odd bits=" + odd); System.out.println("number from even bits=" + even);
版画
binary=1010101010111011 odds=10100000 evens=11111111 number from odd bits=160 number from even bits=255
我正指望离开这些位。