目录
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