java.03-运算符

二进制:由0和1组成,代码中以0b开头
逢二进一
借一当二

十进制中的0——二进制中的0
十进制中的1——二进制中的1
十进制中的2——二进制中的10
十进制中的3——二进制中的11
十进制中的4——二进制中的100

十进制:由0~9组成,前面不加任何前缀
八进制:由0~7组成,代码中以0开头
十六进制:由0~9还有a-f组成,代码中以0x开头

任意进制转十进制
右往左 相乘相加

十进制转任意进制
取余法 除以?进制直到商为0 余数从下往上写

import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        //创建对象
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个数字");
        //接收数据
        int number1=sc.nextInt();
        System.out.println("请输入第二个数字");
        int number2=sc.nextInt();
        System.out.println(number1+number2);

    }
}

% 取模、取余

键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

    //个位:数字%10
    //十位:数字/10%10
    //百位:数字/100%10
    //千位:数字/1000%10
		Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number=sc.nextInt();

        int ge=number%10;
        int shi=number/10%10;
        int bai=number/100%10;
        System.out.println("个位是:"+ge);
        System.out.println("十位是:"+shi);
        System.out.println("百位是:"+bai);

算术运算符

隐式转换:取值范围小的转换成大的,byte,short,char都会先提升为int,再进行运算
强制转换:…大变小
取值范围从小到大:byte-short-int-long-float-double

byte:-128~127
ascii码表:a对应97,A对应65

自增自减运算符

++ 加 变量的值加1 - - 减 变量的值减1
++和- -可以放变量前面,也可以放变量后面

		int x=10;
        //后++:先用后加
        //先把x变量中的值拿出来用,赋值给y,然后再进行自增
        //赋值给y的值是自增前的
        int y=x++;//x=11 y=10
        //先++:先加后用
        //先把x进行自增,然后把自增后的结果赋值给左边的变量
        //先把x自增,变成12,然后再把自增之后的12赋值给z
        int z=++x;//x=12 z=12
        System.out.println("x:"+x);//12
        System.out.println("y:"+y);//10
        System.out.println("z:"+z);//12

赋值运算符

+=,-=,*=,/=,%=底层都隐藏了强制类型转换
+=:将左边和右边进行相加,然后把结果赋值给左边

    a += b;
    //等同于a=a+b
      	int a=10;
        int b=20;
        System.out.println(a);//30
        System.out.println(b);//20

关系运算符

结果都是boolean类型,成立为true,不成立为false
== !=

逻辑运算符

&  逻辑与   并且,两边都为真,结果才为真(两边都要满足)
|  逻辑或   或者,两边都为假,结果才为,有一个为真则真(两边满足一个)
^  逻辑异或 一真一假为真,其他为假
!  逻辑非   取反

使用场景:登录
用户名正确并且密码正确

短路逻辑运算符

&&  短路与  结果和&相同,但有短路效果
||  短路或  结果和|相同,但有短路效果
当左边的表达式能确定最终的结果,那么右边就不会参与运行了。
        int a=10;
        int b=10;
        boolean result = ++a<5&&++b<5;
        System.out.println(result);//false
        System.out.println(a);//11
        System.out.println(b);//10,如果改为单个&,则b为11

三元运算符

格式:关系表达式?表达式1:表达式2;
整个三元运算符的结果必须要被使用
计算规则:首先计算关系表达式的值,如果值为true,表达式1的值就是运算结果,如果值为false,表达式2的值就是运算结果
e.g. 求两个数的较大值

		int max=a>b?a:b;
        System.out.println(max);

运算优先级

()优先于所有

原码、反码、补码(见计组)

原码:0为正,1为负
反码:正数的反码是其本身,负数的反码是符号位保持不变,其余位取反
补码:正数的补码是其本身,负数的补码是在其反码的基础上+1(取反+1)

练习

1.键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

package test;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
    
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number=sc.nextInt();

        //获取个位,十位,百位
        //个位:数字%10
        //十位:数字/10%10
        //百位:数字/100%10
        //千位:数字/1000%10

        int ge=number%10;
        int shi=number/10%10;
        int bai=number/100%10;
        System.out.println("个位是:"+ge);
        System.out.println("十位是:"+shi);
        System.out.println("百位是:"+bai);
    }
}

2.键盘录入两个整数,表示你和你约会对象衣服的时髦度。 (手动录入0~10之间的整数,不能录入其他)如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true,否则输出false

package test;
import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {

//        Scanner sc=new Scanner(System.in);
//        System.out.println("请输入你的衣服的时髦度:");
//        int a=sc.nextInt();
//        System.out.println("请输入你约会对象的衣服的时髦度:");
//        int b=sc.nextInt();
//        System.out.println(a>=b);//错在这里,不是>=,题目>

        //答案:
        //1.键盘录入两个整数表示衣服时髦度
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入我们自己的衣服时髦度");
        int myFashion =sc.nextInt();
        System.out.println("请输入相亲对象衣服的时髦度");
        int girlFashion=sc.nextInt();

        //2.进行对比
        boolean result=myFashion>girlFashion;

        //3.打印结果
        System.out.println(result);
    }
}

3.键盘录入两个整数,如果其中一个为6,最终结果输出true,如果它们的和为6的倍数,最终结果输出true,其他情况都是false

package test;
import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入两个整数");//答案是拆开输入
        int a=sc.nextInt();
        int b=sc.nextInt();
        boolean result=a==6||b==6||(a+b)%6==0;
        System.out.println(result);
    }
}

4.动物园有两只老虎,体重分别通过键盘录入获得,请用程序实现判断两种老虎的体重是否相同

package test;
import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一只老虎的体重:");
        Double weight1=sc.nextDouble();
        System.out.println("请输入第二只老虎的体重:");
        Double weight2=sc.nextDouble();

        //比较
        //true false,下面只能判断boolean类型
        //System.out.println(weight1==weight2);

        String result = weight1==weight2?"相同":"不同";
        System.out.println(result);
    }
}

5.一座寺庙里住着三个和尚,已知他们的身高分别为150cm,210cm,165cm,请用程序实现获取这三个和尚的最高身高

package test;
public class Test5 {
    public static void main(String[] args) {
        /*一座寺庙里住着三个和尚,已知他们的身高分别为150cm,210cm,165cm,
        请用程序实现获取这三个和尚的最高身高
         */
        
        //1.定义三个变量记录三个和尚的身高
        int height1=150;
        int height2=210;
        int height3=165;
        //2.拿着第一个和尚和第二个和尚进行比较
        //再拿着结果跟第三个和尚进行比较
        int temp = height1>height2?height1:height2;
        int max = temp>height3?temp:height3;
        
        System.out.println(max);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值