Java编程练习题:1.判断一个整数是奇数还是偶数,至少有两种方式实现,2.输入一个数,判断这个是2的指数,3.两个选择题

目录

1. 判断一个整数是奇数还是偶数,至少有两种方式实现

1.1 方法一:取模法

1.2 方法二:使用按位与&运算符

2. 输入一个数,判断这个是2的指数

3. 考察逻辑运算符和位运算符选择题

3.1 下列哪一项是“4是奇数或-9为正数”的否定(A、C)

3.2 如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是(D)


1. 判断一个整数是奇数还是偶数,至少有两种方式实现

1.1 方法一:取模法

让要判断的数 % 2,如果结果等于0,则为偶数;否则为奇数

// 方法一:取模
public class JudgeParity {
    public static void main(String[] args) {

        int num = 15;
        if(num % 2 == 0){
            System.out.println(num + ":是偶数!");
        }
        else{
            System.out.println(num + ":是奇数!");
        }
    }
}

1.2 方法二:使用按位与&运算符

让要判断的数 & 1,如果结果等于0,则为偶数;否则为奇数

// 方法二:使用按位与&运算符
public class JudgeParity {
    public static void main(String[] args) {

        int num = 16;
        if((num & 1) == 0){
            System.out.println(num + ":是偶数!");
        }
        else{
            System.out.println(num + ":是奇数!");
        }
    }
}

2. 输入一个数,判断这个是2的指数

观察1、2、4、8等数的二进制:发现只有最高位为1其余位为0

1的二进制为1
2的二进制为10
4的二进制为100
8的二进制为1000

如果将其减一的话那么最高位为0其余位则为1,两者相与的结果则必定为0

结论:如果 num & (num-1) == 0 则a必定是2的指数幂。

import java.util.Scanner;

public class JudgeExponential {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        if((num & (num - 1)) == 0){
            System.out.println(num + ":是2的指数!");
        }
        else{
            System.out.println(num + ":不是2的指数!");
        }
    }
}

3. 考察逻辑运算符和位运算符选择题

3.1 下列哪一项是“4是奇数或-9为正数”的否定(A、C)

    A、4是偶数或-9不是负数
    B、4是奇数或-9不是负数
    C、4是偶数和-9是负数
    D、4是奇数和-9不是负数

本题考查逻辑运算符知识。

解析:题目中“4是奇数或-9为正数”相当于“false | false”,结果为false,否定应为true。A选项中“4是偶数或-9不是负数”相当于“true | false”,结果为true,故A选项正确;B选项中“4是奇数或-9不是负数”相当于“false | false”,结果为false,故B选项错误;C选项中“4是偶数和-9是负数”相当于“true & true”,结果为true,故C选项正确;D选项中“4是奇数和-9不是负数”相当于“false & false”,结果为false,故D选项错误;答案为A、C。

3.2 如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是(D)

    A、    C=A|B
    B、    C=~A
    C、    C=~B
    D、    C=A&B

解析:考察位运算符知识

A:10110110
B:11100000
A|B:11110110
~A:01001001
~B:00011111
A&B:10100000
C:10100000

从以上我们看到D选项C = A&B是正确的,故选D

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Golang_HZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值