不常见的运算符

位运算符

  1. &(与)运算符:都为1则为1,否则为0

  2. |(或)运算符:都为0则为0,否则为1

  3. ^(异或)运算符:相同为0,不同为1

  4. ~(非)运算符:1变0,0变1

存在A = 0011 1100,B = 0000 1101

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~B = 1111 0010

例子:

public class Demo {
     public static void main(String[] args) {
         int a = 245;    //奇数
         int b = 264;    //偶数
         System.out.println(isEven(a));      false
         System.out.println(isEven(b));      true
     }
     //Even  (adv)即使;甚至
     //      (adj)平滑的;平的;平坦的;(数量、速度等)变化不大的;均匀的;平稳的;相等的;均等的;偶数的
     //判断一个数是否为偶数
     public static boolean isEven(int i){
         //逻辑:使用 & (与)运算符
         //1的二进制为:0000 ... 0001
         //无论该数有多大,和1进行与运算,后面位均为0。
         //若为奇数,第一位为1,即十进制为1;若为偶数,第一位为0,即十进制为0
         return (i & 1) == 0;
     }
 }

  1. <<(左移)运算符:将二进制数向左移(数值变大,移动n位就*n个2)

  2. >>(右移)运算符:将二进制数向右移(数值变小,移动n位就/n个2)

例子:

public class Demo {
     public static void main(String[] args) {
         int a = 3;//0011
         int b = a << 2;//将a向左移动两位:1100
         System.out.println(b);      12
 ​
         b = b >> 3;//将a向右移动三位:0001
         System.out.println(b);      1
     }
 }

三元运算符

? : 运算符:x ? y : z表示如果x==true,则结果为y,否则为z

例子:

public class Demo {
     public static void main(String[] args) {
         //score < 60 ? "不及格" : "及格"
         //若(score < 60) == true,则输出"不及格",否则输出"及格"
         int score = 80;
         System.out.println(score < 60 ? "不及格" : "及格");      及格
         score = 59;
         System.out.println(score < 60 ? "不及格" : "及格");      不及格
     }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值