任务描述
本关任务:
- 使用位运算符判断 x 的奇偶性,如果 x 为 1,是奇数,换行输出:1 为奇数;
- 对于变量 y,使用位运算符求取它的相反数,将结果换行输出;
- 使用位运算符求取变量 x 和 y 的平均值,将结果不换行输出。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
参考答案
import java.util.Scanner;
/**
* 任务:
* 1. 使用位运算符判断 x 的奇偶性,如果 x 为 1,是奇数,换行输出:1 为奇数;
* 2. 对于变量 y,使用位运算符求取它的相反数,将结果换行输出;
* 3. 使用位运算符求取变量 x 和 y 的平均值,将结果不换行输出。
* 类名为:BitwiseOperation
*/
public class BitwiseOperation {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int x = reader.nextInt();
int y = reader.nextInt();
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:使用位运算符判断 x 的奇偶性 如果 x 为 1,是奇数,换行输出:1 为奇数
if ((x&1)==1) {
System.out.printf("%d 为奇数\n",x);
}else if ((x&1)==0) {
System.out.printf("%d 为偶数\n",x);
}
// 第二步:对于变量 y,使用位运算符求取它的相反数
int opposite = ~y + 1;
// 第三步:将上一步结果换行输出
System.out.println(opposite);
// 第四步:使用位运算符求取变量 x 和 y 的平均值
int avg = (x&y)+((x^y)>>1);
// 第五步:将上一步结果不换行输出
System.out.print(avg);
/********** End **********/
}
}