java运算符用法

+=的特殊用法
用于算术运算
可以用来对字符串进行拼接
只要 + 的两边有一个是字符串,就是在进行字符串的拼接

“Hello”+100+200 --> “Hello100200”
100+200+”Hello” --> “300Hello”

对字符类型进行运算的时候,是将字符对应的Unicode编码作为一个int类型的整数来进行计算

条件运算符
可以根据条件去执行不同的语句
? :
条件语句?语句1:语句2;
执行流程:
当条件语句的结果为true,就执行语句1
当条件语句的结果为false,就执行语句2

int a,b;
找出a,b中较大的值
int t = a>b?a:b;
变量t就是a,b中较大的值

计算 |a-b|
int t = a>b?a-b:b-a;

找出a,b,c三个数字中的最大值和最小值
int t = a>b?a:b;
int m = t>c?t:c
int m = ( a>b?a:b)>c?( a>b?a:b):c

位运算符
位运算符是按照二进制位对数字进行运算
其运算效率要比其它运算符高
整数的位运算默认类型是int类型

按位与 &
按照二进制位,都为1则为1,否则为0
0&0=0 1&0=0 1&1=1
任何数字 &1 都等于原来的数字
任何数字 &0 都等于0

11 &5
00000000 00000000 00000000 00001011
00000000 00000000 00000000 00000101

00000000 00000000 00000000 00000001

使用场景:
如何判断两台电脑是在同一个局域网之内的??
IP地址
192.168.1.100
192.168.2.100
子网掩码:255.255.0.0

保留需要的二进制位
01010100 10101111 01011101 00101010
00000000 11111111 00000000 00000000
00000000 10101111 00000000 00000000

按位或 |
按照二进制位,都为0,则为0 否则为1
0|0=0 0|1=1 1|1=1

11 |5
00000000 00000000 00000000 00001011
00000000 00000000 00000000 00000101

00000000 00000000 00000000 00001111

按位与和按位或运算也是一种逻辑运算符
当 & |的两边是boolean值的时候,就是逻辑运算符
当 & |的两边是数字的时候,就是位运算符

逻辑与 && 当计算到为false的条件,就不再计算后面的内容[短路了]
& 无论条件为true还是false,都会计算完所有的内容
通常情况下,为了提高计算的效率,推荐使用 短路的逻辑与 &&
如果非要计算完所有的表达式,就选择 不短路的逻辑与 &

逻辑或 || 当计算到为true的条件,就不再计算后面的内容[ 短路了]
| 无论条件为true还是false,都会计算完所有的内容
通常情况下,为了提高计算的效率,推荐使用 短路的逻辑或 ||
如果非要计算完所有的表达式,就选择 不短路的逻辑或 |

按位异或 ^
按二进制为,相同位0 不同为1
0^0=0 0^1=1 1^1=0
11 ^ 5=14
00000000 00000000 00000000 00001011
00000000 00000000 00000000 00000101

00000000 00000000 00000000 00001110

14^11=5
00000000 00000000 00000000 00001110
00000000 00000000 00000000 00001011
00000000 00000000 00000000 00000101

14^5 = 11
00000000 00000000 00000000 00001110
00000000 00000000 00000000 00000101
00000000 00000000 00000000 00001011

左移 <<
按照二进制位向左移动,在右边补0
每向左移动一位,相当于乘以2
当移动的位数达到32位的时候,取32的余数

-11<<1 =-22
1111111 11111111 11111111 111101010
1111111 11111111 11111111 111101001
0000000 00000000 00000000 000010110

右移 >>
按照二进制位向右移动,在左边补 符号位的数字
每向右移动一位,相当于除以2
当移动的位数达到32位的时候,取32的余数

-11>>1
111111111 11111111 11111111 1111010
111111111 11111111 11111111 1111001
000000000 00000000 00000000 0000110

无符号右移 >>>
按照二进制位向右移动,在左边补0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值