Java系列(6)——运算符

版权声明:如需转载,请注明出处 https://blog.csdn.net/qq_36260974/article/details/86564500

运算符

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。

自增自减

  • 后++ --(i++):此种情况和其他代码在一行的时候,先使用加或减之前的值。(先用后加)
  • 前++ --(++i):此种情况和其他代码在一行的时候,使用加或减之后的值。(先加后用)

比较运算符

class demo
{
	public static void main(String[] args)
	{		
		int a = 12;
		int b = 12;	
		
		/*
		//-------------------------(1)-------------------------	
		boolean isTrue = (a == b);
		System.out.println(isTrue);	
		//-----------------------------------------------------
		*/	
		
		//-------------------------(2)-------------------------		
		System.out.println(a == b);		
		//-----------------------------------------------------		
		
		//这两种输出是一样的效果		
	}	
}

这两种输出效果一样,本节目的是知道直接使用System.out.println(a == b);也可以输出true或false。

逻辑运算符

  • &:用于连接多个表达式的判断true & true = true,& 两边的表达式都要参与计算。

  • |:用于连接多个表达式的判断false | false = false,| 两边的表达式都要参与计算。

  • &&:用于连接多个表达式的判断true & true = true,如果第一个表达式能解决整个表达式的结果,第二个表达式就不用计算了。也就是说&&连接的判断表达式必须全为true才为true,从第一个表达时开始判断,一旦检测到有表达式为false,立即判断整个表达式为false。

  • ||:用于连接多个表达式的判断false | false = false,如果第一个表达式能解决整个表达式的结果,第二个表达式就不用计算了。也就是说||连接的判断表达式必须全为false才为false,从第一个表达时开始判断,一旦检测到有表达式为true,立即判断整个表达式为true。

  • ^:用于连接多个表达式的判断,如果两个表达式相同就是false,不同就是true,两边都参与计算。(了解)

  • !:取反。

位运算

  • 左移:<<

2 的 2 进制表示为: 0 0 0 0 0 0 1 0

a << 2: 表示向左移动两位,右边空出来的位置用 0 补,于是变成:0 0 0 0 1 0 0 0

2 进制的 0 0 0 0 1 0 0 0 表示 8,所以打印出来的是 8。
在这里插入图片描述

  • 右移:>>
    与上面不同的是,向右移动的时候,高位就会产生空位,如果高位是0,就用0来补,如果高位是1就用1来补,也就是说,右移是带着符号位移动的。

16的2进制表示为:0 0 0 1 0 0 0 0

16 >> 3:表示向左移动三位,左边空出来三个位置,由于最高位是0,所以用0来补,于是变成:0 0 0 0 0 0 1 0

2 进制的 0 0 0 0 0 0 1 0 表示 2,所以打印出来的是 2。
在这里插入图片描述

原码 、反码 和补码
在这里插入图片描述

  • 正数的原码,反码,补码都是一样的。
  • 负数的反码是原码符号位不变,其他位相反,补码为反码加一。
  • 移码为补码符号为相反,其他不变
  • 补码就是负数在计算机中的二进制表示方法。

正负 3 补码相加

0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
———————
0 0 0 0 0 0 0 0

注意:计算机中所有二进制的运算都是用的补码进行运算。

  • 无符号右移 :>>>
    高位无需管符号位,都用0补

3 的 2 进制表示为: 0 0 0 0 0 0 1 1

3 >>> 2:表示将3无符号向右移动2位,变成:0 0 0 0 0 0 0 0

二进制的 0 0 0 0 0 0 0 0 的 10 进制为 0,所以打印出来 0。
在这里插入图片描述
-3 的 2 进制表示为 1 1 1 1 1 1 0 1
e >>> 2:表示无符号右移2位,应该变成:0 0 1 1 1 1 1 1
在这里插入图片描述
但是: 变成了1073741823,为什么呢?

因为 -3 为整数类型,4个字节占够32位,这才是真正的 -3 :1111 1111 1111 1111 1111 1111 1111 1101
无符号右移以后为:0011 1111 1111 1111 1111 1111 1111 1111
在这里插入图片描述
三元运算符

  • 格式:表达式 ? 表达式1 :表达式2
  • 解释:表达式条件成立的时候(true),结果为表达式1;反之(false),结果为表达式2。
    在这里插入图片描述

转义字符
在这里插入图片描述

  • java中反斜线’'通常和其他字符组合使用,我们有时候称它为转义字符。
  • java代码里要表示一个反斜线’'就要写成双斜线形式"\",第一个反斜线代表转义,第二个可以看做普通字符。
  • java中奇数个的反斜线不允许出现,除非后面有其他字符,那么最后一个反斜线就被当做了转义字符。

如有错误,欢迎指正!

猜你喜欢

转载自blog.csdn.net/qq_36260974/article/details/86564500
今日推荐