二进制整数的奇偶位交换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Caiaixiong/article/details/84037251

无题

  • 一般在做按位与运算时,用1去按位与会保留原数值,因此可以各自获取原数值所有的奇数位和偶数位,再对其进行交叉异或操作。
import java.util.Scanner;

public class Main {		
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int i = scan.nextInt();
		//保留奇数位
		int odd = i&0xaaaaaaaa;
		//保留偶数位
		int even = i&0x55555555;
		//交错按位与
		System.out.println("奇偶位交换后为:"+((odd>>1)^(even<<1)));
	}

}

猜你喜欢

转载自blog.csdn.net/Caiaixiong/article/details/84037251