大家关注微信公众号 罡罡同学 回复蓝桥杯

可免费获得历年真题和C语言版的真题源代码

将整数的奇偶位互换

题目:将整数的奇偶位互换 (奇偶位:指二进制中的奇偶位)

例:9的二进制 1001,互换后为 0110,6

import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int b=m(a);
System.out.println(b);
}

private static int m(int i) {//0x用十六进制表示一个整数(32位)
int ou=i&0xaaaaaaaa;//和1010 1010.。。1010做与运算取出偶数位
int ji=i&0x55555555;//和0101 0101。。。0101做与运算取出奇数位
return (ou>>1)^(ji<<1);//将偶数右移一位,奇数左移一位,然后异或运算
}
}

谢谢大家的支持,您的一键三连是 罡罡同学前进的最大动力!

一键三连 一键三连 一键三连 一键三连 一键三连 一键三连