这里的整数的奇偶位互换,实际上是二进制上奇偶位的互换。而不是十进制上的奇偶位互换,15,换成51。
import java.util.Scanner;
public class _05_交换奇偶位 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
int b=in.nextInt();
System.out.println(m(b));
}
public static int m(int i) {
int ou=i&0xaaaaaaaa;//和1010 1010 1010.....做与运算取出偶数位
int ji=i&0x55555555;//和0101 0101 0101.....做与运算取出奇数位
return (ou>>1)^(ji<<1);//连起来
}
}