Java运算符

**

1.基本运算符

**
在java当中,使用运算符+、-、*、/ 表示加减乘除,当参与 / 运算的两个操作数都是整数的时候,表示整数除法;否则表示浮点数。整数的求余操作用 % 表示。

System.out.println(5 / 2);  // 2
System.out.println(8/0);   // by zero 错误
System.out.println(浮点数/0);  // INFINITY
System.out.println(5%2);   // 1
System.out.println(5.0/2);  // 2.5
System.out.println(3+9*8.0/2%2);  // 3.0
System.out.println((3+9)*8.0/2%2);  // 0.0

2.数值之间的转化

在程序运行的时候,我们经常需要将一种数值类型转化为另一种数值类型。
在这里插入图片描述

3.强制类型转换

有时候也需要将double转化为int.。在java当中允许这种数值之间的类型转化。当然也会有以一些数据丢失。在这样情况之下,需要通过强制类型转换实现这个操作,强制类型的语法格式是通过()当中给出的想要转化的目标类型。

public static void main(String[] args) {
	double dou_num = 10.15;
	int numn = (int) dou_num;
}

4.自增和自减运算符:

++m:先加再赋值,m++;先赋值再加
自增和自减的过程就是一个值交换和值存储的流程,内存中值存储和值交换不在一个地方,值交换会产生一个临时副本空间(备份)
m++中是先把临时的副本赋值给m本身,再让备份自增
++m:是先自增临时副本空间后,在讲副本传给a本身

public static void main(String[] args) {
		int m = 10;
		int n = 10;
		int a = ++m;
		int b = n++;
		System.out.println(a);
		//a的值输出为11
		System.out.println(b);
		//b的值输出为10
}

5.关系和boolean运算符

①:检测相等性: ==
②:检测不等:!=
③:最后,还有经常使用的<、>、<=和>=

6.逻辑运算符

(1)与运算(&&):先后两个条件都为True时才执行;
(2)或运算(||):只要有一个为True时就可以执行

7.三目运算符(?😃:

a < b ? 0 : 1;
//如果a<b那么返回0,如果a>b那么返回1

8.位运算

(以byte举例)按位与、或、反、异或运算
(1)按位与运算(&):两个二进制数的每一位相对应,每对都为1 是1,否则为0;
如 10:00001010
12:00001100

结果: 00001000 转换为十进制为8;

(2)按位或运算(|):两个二进制的每一位相对应,每对都为0 是 0,否则为1;
如 10:00001010
12:00001100

              00001110            转换为十进制为14;

(3)按位取反运算(~):按位取反, 1变0,0变1

(4)按位异或运算(^):两个二进制的每一位相对应,每对相同为0,不同为1;
如 10:00001010
12:00001100

             00000111            转换为十进制为7;

9.移位运算:

包括 :左移运算(<<)、右移运算(>>)、无符号右移运算(>>>)
(1)左移运算(<<):从右往左推,要计算X左移N位,则后面补N个0,前面超过8位的都去掉
如,-8=11111000(补码) -8左移2位: -8<<2=11100000(补码) 将原码算出去,转换为十进制结果为-32
-12=11110100(补码) -12左移3位: -12<<3=10100000(补码) 结果为-96
发现,左移运算最后的结果是 要左移的这个数X2的N次方; -32=-82的2次方; -96=-122的3次方
这就相当于一个乘法运算,并且, 在乘法中,左移运算的时间是最快的
如,普通运算:2
16 和左移运算:2<<4,左移运算比普通运算快的多(不是一个量级的)

(2)有符号位右移运算(>>):从左往右推;这个数X/2的N次方;左边空出来的位用0或1填补(正数用0,负数用1)
如,-8=11111000(补码) -8右移2位 -8>>2=11111110(补码) 结果为-2;

(3)无符号右移(>>>):从左往右推,空位一律用0填补(先记住),以后哈希扩容用;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值