逻辑运算符、位运算符和三元运算符

这篇博客详细介绍了Java中的逻辑运算符和位运算符。逻辑运算符包括&&、||和!,位运算符涉及&、|、^、~、<<、>>和>>>。文章通过实例解释了这些运算符的工作原理和用法,还提到了三元运算符的使用。重点讨论了运算效率和短路行为,并展示了如何在比较和操作整数时使用位运算符提高性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑运算符

  1. 逻辑运算符:逻辑运算符的运算结果位boolean类型
    1. &:运算两端,只要由一端为false,其最终结果为false,只有两端均为true,结果才是true。【真真才真】
    2. |:运算两端,只要由一端为true,其最终结果为true,只有两端均为false,结果才是false。【假假才假】
    3. !:取反。
    4. ^:相同为false,不同为true。
    5. &&:和&在运算结果上没有区别,在运算效率有区别:&运算两端表达式都会执行,&&左端表达式为false时,其右端表达式就不会执行。
    6. ||:和|在运算结果上没有区别,在运算效率有区别:|运算两端表达式都会执行,||左端表达式为true时,其右端表达式就不会执行。
  2. int a=10;
    int b=20;
    //&
    boolean flag1=a>10&b>20;
    System.out.println("flag1:"+flag1);
    //|
    boolean flag2=a>10|b>20;
    System.out.println("flag2:"+flag2);
    //!
    System.out.println(a==b);//false
    System.out.println(!(a==b));//true
    //^
    System.out.println(true^true);//false
    System.out.println(true^false);//true

位运算符

位运算符:直接对二进制补码进行运算,运算效率高。

int a=3;
int b=4;
// &:有0则0
//      0 0000011  3的补码
//  &   0 0000100  4的补码
//---------------------------
      //0 0000111 
System.out.println(a&b);
// |:有1则1
//      0 0000011  3的补码
//  |   0 0000100  4的补码
//---------------------------
//      0 0000111 
System.out.println(a|b);
// ^:相同则0,不同则1。
//      0 0000011  3的补码
//  ^   0 0000100  4的补码
//---------------------------
//      0 0000111 
System.out.println(a^b);
//~:按位取反,0变1 1变0 符号位也包含在内取反
// ~    0 0000011  3的补码 
//      1 1111100
System.out.println(~a);
//  <<:左移
System.out.println(3<<2);//把3左移两位
//  <<  0 0000011  3的补码 
//      0 0001100  
//  >>:右移  被移位的二进制最高位是0,右移后空缺位补0,最高位是1,最高位补1.
System.out.println(3>>2);//把3右移两位
//  >>  0 0000011  3的补码
//         000000   
// 补齐 0 0000000
//  >>>  无符号右移: 不管正负,最高位都补0
System.out.println(3>>>2);
// >>>  0 0000011  3的补码
//         000000
//补齐  0 0000000

三元运算符

//三元运算符
//表达式?  结果1:结果2
//当表达式结果为true,返回结果1,结果位false,返回结果2
int a=20;
int b=123;
int c=321;
int max=a>b?a:b;
max=max>c?max:c;
Ststem.out.println("max:"+max);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值