2021.11.17

我今天学习的内容有:运算符及数据内容的转换。

其主要内容有:

    算术运算符: +,-,*,/,%,++,--
    赋值运算符 =
        一个等号=是赋值,两个等号==是关系运算符
    扩展赋值运算符:+=,-=,*=,/=
        
    关系运算符: >,<,>=,<=,==,!=
    逻辑运算符: &&,||,!
    位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
    条件运算符 ?:

*/

public class OperatorDemo{
    
    public static void main(String[] args){
        //算数运算符
        int a = 1;
        int b = 2;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        //取整除,或者取商
        System.out.println(a / b);
        //取余数,或者取模
        System.out.println(a % b);
        System.out.println("==================");
        //获取一个4位数的个位数、十位数、百位数、千位数各是多少?
        int num = 4567;
        System.out.println("千位数是:" + (num / 1000));
        System.out.println("百位数是:" + ((num / 100) % 10));
        System.out.println("十位数是:" + ((num % 100) / 10));
        System.out.println("个位数是:" + (num % 10));
        System.out.println("==================");
        /*
            ++:单目运算符,自加1的操作,如果放在前面,先自加,再参加运算
                如果放在后面,先参加运算,再自加
            --:单目运算符,自减1的操作,如果放在前面,先自减,再参加运算
                如果放在后面,先参加运算,再自减
        */
        System.out.println(a++);
        System.out.println(++a);
        //System.out.println(a--);
        //System.out.println(--a);
        System.out.println(++b+b++);//?  6
        
        
        //扩展运算符
        int c = 10;
        //c加2的操作
        //两种写法得到的结果是一样的,所以建议大家都使用扩展运算符
        //c = c + 2;
        c += 2;
        
        /*
            基本数据类型的转换:
                bb是byte类型,bb+2中的2是int类型,byte和int都属于整型,也就是说是同一种数据类型,
                那么byte会自动向int类型转换,所以=右边最终返回的是int类型,而等号左边是byte类型,
                我们知道赋值运算符是从右向左赋值,换句话说,这里面就是int类型向byte类型转换,就是高位
                向低位进行转换,必须是用强制转换。  语法:(datatype)
        */
        
        byte bb = 10;
        //bb = (byte)(bb + 2);
        bb += 2;
        System.out.println(bb);
        
        //关系运算符
        System.out.println(4 > 5);
        System.out.println(4 < 5);
        System.out.println(4 >= 5);
        System.out.println(4 <= 5);
        System.out.println(4 == 5);
        System.out.println(4 != 5);
        
        
        /*
        逻辑运算符:
            &&:短路与,自左向右执行,如果第一个表达式返回false,那么后面的表达式就不再执行
                &:逻辑与,自左向右执行,不管第一个表达式返回true还是false,后面表达式都会执行
            ||:短路或,自左向右执行,如果第一个表达式返回true,那么后面的表达式就不再执行
                |:逻辑或,自左向右执行,不管第一个表达式返回true还是false,后面表达式都会执行
        */
        
        System.out.println( 2 > 3 && 5 > 4);
        int i = 1;
        //System.out.println( 2 > 3 && i++ > 1);
        //System.out.println(i);//1
        System.out.println( 2 > 3 & i++ > 1);
        System.out.println(i);//2
        System.out.println( 2 > 3 || 5 > 4);
        System.out.println(!false);
        System.out.println(!true);
        System.out.println(!(2 > 3));
        
        //位运算符
        System.out.println(4 & 5);
        System.out.println(4 | 5);
        System.out.println(4 ^ 5);
        //移码   原码   反码  补码?
        System.out.println(~4);//-5?
        /*
            >>:有符号右移,对正数而言,右移几位就是除几个2
            <<:有符号左移,对正数而言,左移几位就是乘几个2
            >>>:无符号右移
        */
        //把2变成16的最高效的方法是什么?
        System.out.println(2 << 3);
        System.out.println(16 >> 3);
        
        /*
            条件运算符:又叫三目运算符
                        当第一个表达返回为true,则取?后面的值,第一个表达式返回为false,则取:后面的值
        */
        System.out.println(2 < 3 ? 2 : 3);
        System.out.println(false ? false : true ? false : true);
        基本数据类型之间的转换:
                1、自动转换(隐式转换)
                    赋值运算符=左边数据范围大,右边数据范围小,并且一般是同一种数据类型的情况下,则会发生自动转换
                2、强制转换
                    赋值运算符=左边数据范围小,右边数据范围大,并且一般是同一种数据类型的情况下,则必须使用强制转换
                        语法:(datatype)
                    强制转换可能会有数据精度的丢失
        */
        byte a1 = 2;
        a1 = (byte)(a1 + 10);
        System.out.println(a1);
        
        System.out.println((byte)270);//14
            
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值