java基础--位运算,条件运算

只有整型数才能作位运算 (<< 相当于乘2     >>相当于除2)

如:double a=5;

a=a<<3;//error  必须是整型数才可以位运算

system.out.println(a);

运算符:

x++:先运算,后自增

++x:先自增,后运算

&&:短路与,当前一个条件为false时,后一个条件不运算

&:按位与,当前一个条件为false时,后一个条件也要判断

||:短路或,当前一个条件为true时,后一个条件不运算

|:按位或,当前一个条件为true时,后一个条件也要判断

>>:往右移若干位,左边补符号位

>>>:往右移若干位,左边补0,用于位图移动,不用于数字运算

负数的位运算:(根据补码进行位运算)

如:int a=-33;//-33原码:1....0010 0001   补码:1...1101 1111

a=a>>2;//1...1101 1111右移2位变成1....1111 0111  原码:1...0000 1001

system.out.println(a);//-9

取反:

int a=~10;//根据补码 10补码:00... 0000 1010    ~10:11... 1111 0101 ->原码:10...0000 1011

system.out.println(a);//-11

异或:

两个相同的整数异或结果为0。任意整数与0异或,结果都为本身

如:不使用第三个变量,使a和b中的值交换

int  a=10,b=5;

a=a^b;

b=b^a;//b^(a^b)=a^(b^b)=a

a=a^b;//(a^b)^(a^(a^b))=(a^b)^a=b;

数学运算符的优先级高于位运算

如:int a=10;

a+=a-=a*=a;

system.out.println(a);//-80

a*=a    ->a1=a*a=100;

a-=a   ->a2=a-a1=-90;

a+=a  ->a3=a+a2=-80;

条件运算:冒号两边的数据类型要一致,否则低精度自动向高精度转换

如:double x=3.0;

int  y=5;

system.out.println(x>y?x:y);//5.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值