练习- Java位运算之综合练习

任务描述

本关任务:

  1. 使用位运算符判断 x 的奇偶性,如果 x 为 1,是奇数,换行输出:1 为奇数;
  2. 对于变量 y,使用位运算符求取它的相反数,将结果换行输出;
  3. 使用位运算符求取变量 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 **********/
    }
}

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121281622