逻辑运算符,位运算符
程序员文章站
2022-05-18 15:56:21
...
逻辑运算符" & | !" 的应用:
&:与。两边的表达式结果都是true时,则为true,否则为false;
| :或。只要有一个为true则结果为true,否则结果为false。
! :非。!true=false,!false=true。
^:异或。两边相同时为false,两边不同时为true。
&&:短路与。如果左边为false,则右边不再计算
|| :短路或。如果左边为true,则右边不再计算
位运算:
前提条件:需要将数据转为二进制数据才可以运算。
十进制转二进制:不断除以2取余数的过程。
逻辑位运算:
& | ^
移位运算:
左移:<< ,被移位的数字乘以2的移动次幂。
具体方法:首先要把数字转换成二进制,填完整,比如11<<2,11的二进制为00001011(一个字节有8位(bit))左移两位即
右移:>> ,被移位的数字除以2的移动次幂,最高位补位取决于被移位的数是正数还是负数,正数补0,负数补1。
无符号右移:>>> ,被移位的数字除以2的移动次幂,最高位补位与被移位的数是正数还是负数没有关系,都补0。
判断输入的数是否为水仙花数:
注意点:1.从控制台输入数字需要引用Scanner,在程序开头输入如下代码:import java.util.*,*为通配符,这里也可以写的具体一点写成Scanner。
import java.util.*;
class Demo12 {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入要进行比较的数值:");
// int num1=input.nextInt();
// int num2=input.nextInt();
// int num3=input.nextInt();
// int num4=input.nextInt();
//
// int max=num1>num2?(num1>num3?(num1>num4?num1:num4):(num3>num4?num3:num4)):(num2>num3?(num2>num4?num2:num4):(num3>num4?num3:num4));
// System.out.println("最大的值为:"+max);
//判断输入的数是否为水仙花数
// 从控制台获取数据
int number=input.nextInt();
// 拆分成个位十位和百位三个数字
int a,b,c,sum;
a=number/100;
b=number%100/10;
c=number%10;
// 计算幂结果
sum=a*a*a+b*b*b+c*c*c;
//比较结果和原数值是否相同
if(sum==number){
System.out.println("该值为水仙花数");
}else{
System.out.println("该值不是水仙花数");
}
System.out.println("over");
}
}
案例2:15s,100米进入决赛,根据性别进行分组
//15s,100米进入决赛,根据性别进行分组
import java.util.*;
public class Demo13{
public static void main(String[] args){
//引入Scanner函数
Scanner input=new Scanner(System.in);
System.out.print("请输入比赛用时:");
//从控制台获取时间变量
int time=input.nextInt();
if(time<=15){
System.out.println("恭喜你进入决赛!");
System.out.println(); //输出空行,美观
System.out.println("请输入性别,1代表男生,2代表女生:");
//从控制台获取性别变量
int sex=input.nextInt();
if(sex==1){
System.out.println("恭喜你被分到男生组!");
}else if(sex==2){
System.out.println("恭喜你被分到女生组");
}else{
System.out.println("对不起,你输入的性别有误!");
}
}else{
System.out.println("很遗憾你没有进入决赛,请再接再厉!");
}
}
}
上一篇: PHP输出图片