`

java运算符操作

    博客分类:
  • J2SE
阅读更多

/**
 * 
 * Java运算符操作
 */
public class Operator
{
	/**
	 * 计算运算符
	 * 对于除法运算,当除数和被除数都是整型时,得到的结果也是整形
	 * 当除不尽时,得到的结果将是真实结果的整数部分。
	 */
	private void computeOperator()
	{
		int a = 8;
		int b = 5;
		
		/*
		 * 对于除法运算,根据基本类型的自动转换规则,当除数和被除数都是整数时,
		 * 得到的结果也是整数。因此8/5得到的是1,而不是1.6
		 */
		
		int f = a/b;
		double g = a/b;
		
		System.out.println("(f = a / b) = " + f + ", (g = a / b) = " + g);
		
		/*
		 * 只要除数和被除数中有一个为double或者float,结果就不同了
		 * 8/5得到的是1.6
		 */
		double h = a /(b*1.0d);
		float i = a/(b*1.0f);
		System.out.println("(h = a / (b*1.0d)) = " + h + "; (i = a / (b*1.0f)) = " + i);
		
	}
	
	/**
	 * 比较运算符
	 * 比较两个数是否相等,用"=="而不是"="
	 * 前者是比较运算符,后者是赋值运算符
	 */
	private void compareOperator()
	{
		int a = 5;
		int b = 10;
		
		System.out.println("(a==b) = " + (a == b));
		System.out.println("(a<b) = " + (a < b));
		System.out.println("(a>b) = " + (a > b));
		System.out.println("(a!=b) = " + (a != b));
		System.out.println("(a<=b) = " + (a <= b));
		System.out.println("(a>=b) = " + (a >= b));
		System.out.println("(a=b) = " + (a = b));
	}
	
	/**
	 * 位运算符
	 */
	private void bitOperator()
	{
		byte a = 23;	//00010111
		byte b = 26;	//00011010
		
		//按位与,两个运算数都为1时,结果为1,其余结果为0
		int c = a & b;	//00010010
		System.out.println("(c = a & b) = " + c);
		
		//按位或,两个运算数都为0时,结果为0,其余结果为1
		int d = a | b;	//00011111
		System.out.println("(d = a | b) = " + d);
		
		//按位异或,两个运算数相同结果时为0,不同时结果为1
		int e = a ^ b;	//00001101
		System.out.println("(e = a ^ b) = " + e);
		
		//按位非,0变为1,1变为0
		int f = ~a;	//11101000
		/*
		 * 注意,java中采用二进制补码存储数字,整数的原码与补码一致
		 * 对于负数,符号位不变,将原码取反然后加1,得到补码
		 * 补码11101000对应的原码是10011000,即-24
		 */
		System.out.println("(f = ~a) = " + f);
		
		//右移,左边空出位以符号填充
		int g = a >> 1;	//00001011 =11
		System.out.println("(g = a >> 1) = " + g);
		
		//右移,左边空出位以0填充
		int h = a >>> 1 ; //00001011 =11
		System.out.println("(h = a >>> 1) = " + h);
		
		//对负数的操作,>>和>>>得到的结果是不一样的
		System.out.println("(-24 >> 1) = " + (-24 >> 1) + "\t (-24 >>> 1) = " + (-24 >>> 1));
		
		//左移
		int i = a << 1;	//00101110 = 46
		System.out.println("(a << 1) = " + i);
	}
	
	private void booleanOperator()
	{
		boolean b1 = true;
		boolean b2 = true;
		boolean b3 = false;
		
		/*
		 * &&运算符:对运算符进行与运算,当所有运算数都为true时,结果为true,
		 * 否则结果为false
		 */
		
		if(b1&&b2&&b3)
		{
			System.out.println("变量b1,b2,b3的值都为true");
		}
		else
		{
			System.out.println("变量b1,b2,b3中至少有一个值为false");
		}
		/*
		 * 注意&&是短路与,意思是:当对运算数的表达式进行从左到右运算时,若遇到有
		 * 运送数的值为false,则结束运算,将结果置为false
		 */
		
		int i = 2;
		int j = 0;
		if(b3 && ((j=i) == 2))
		{
			System.out.println("j = " + j);
		}
		if(b1 && ((j=1)==2))
		{
			System.out.println("j = " + j);
		}
		
		/*
		 * ||运算符:对运算数进行或运算,当所有运算数都为false时,结果为false
		 * 否则结果为true
		 */
		if(b1 || b2 || b3)
		{
			System.out.println("变量b1,b2,b3中至少有一个值为true");
		}
		else
		{
			System.out.println("变量b1,b2,b3的值都为false");
		}
		
		/*
		 * 同样,||是短路或,意思是:当对运算数的表达式进行从左到右运算时,若遇到
		 * 有运算数的值为true,就结束运算,将结果置为true
		 */
		if(b1 || ((j = j -1)== 1))
		{
			System.out.println("j = " + j);
		}
		if(b3 || ((j = j -1)== 1))
		{
			System.out.println("j = " + j);
		}
		
		/*
		 * !运算符:对运算数的值进行取反运算,运算数为true,取反为false
		 */
		if(!b1)
		{
			System.out.println("变量b1为false,因为b1取反后的值为true");
		}
		else
		{
			System.out.println("变量b1为true,因为b1取反后的值为false");
		}
		
		/*
		 * &运算符,和&&一样,对运算数做与操作,不同的是它不是短路的,
		 * 它会运算完所有的运算数表达式
		 */
		if(b3 & ((j=i)==2))
		{
			System.out.println("b3 & ((j=i) == 2) : true");
		}
		else
		{
			System.out.println("b3 & ((j=i) == 2) : false");
		}
		System.out.println("j = " + j);
		if(b1 & ((j=j-1) == 0))
		{
			
		}
		System.out.println("j = " + j);
		
		/*
		 * |运算符,和||一样,对运算数进行或操作,但它不是短路的
		 */
		if(b1 | ((j=i)==2))
		{
			System.out.println("b1 & ((j=i) == 2) : true");
		}
		else
		{
			System.out.println("b1 & ((j=i) == 2) : false");
		}
		System.out.println("j = " + j);
		if(b3 & ((j=j-1) == 1))
		{
			
		}
		System.out.println("j = " + j);
		
		/*
		 * ^运算符,对运算数进行异或操作,相同为flase,不同为true
		 */
		if(b1^b2)
		{
			System.out.println("变量b1,b2的值不同!");
		}
		else
		{
			System.out.println("变量b1,b2的值一样!");
		}
	}
	
	/**
	 * 赋值运算符
	 */
	private void evaluateOperator()
	{
		// =是最常用的赋值运算符
		int i = 5;	//将变量i的值赋为5
		/*
		 * +=运算符是先将运算符左边的运算数的值加上右边的运算数的值
		 * 将结果再赋值给运算符左边的运算数
		 */ 
		i += 3;	//等价于i=i+3;
		i -= 3;
		i *=3;
		i /= 3;
		i&= 3;
		System.out.println("(i &= 3) = " + i);
		i |= 3;
		System.out.println("(i |= 3) = " + i);
		i ^= 3;
		System.out.println("(i ^= 3) = " + i);
	}
	
	/**
	 * 其它运算符
	 */
	private void otherOperator()
	{
		int i = 5;
		// ++是将运算符加1
		// ++i是表示先将i加1后再进行运算
		if(i++ ==5)
		{
			System.out.println("表达式(i++ == 5)的值为true");
		}
		else
		{
			System.out.println("表达式(i++ == 5)的值为false");
		}
		System.out.println("i = " + i);
		//i++ 表示先进行运算,再将i的值加1
		i = 5;
		if(++i == 5)
		{
			System.out.println("表达式(++i == 5)的值为true");
		}
		else
		{
			System.out.println("表达式(++i == 5)的值为false");
		}
		
		System.out.println("i = " + i);
		// --将运算数减1,同样,--i是先将i减1,再进行运算;i--是先进行运算,再将i减1
		i--;
		--i;
		//可以用三目运算符替代简单的if语句
		//格式是:x = a ? b : c;如果a的值为true,则将b的值赋予x,否则将c的值赋予x
		int x = (i >= 0) ? i: -i;	//将一个减号-和数字连用,是取数字的负数
		System.out.println("i的绝对值为:" + x);
	}
	
	public static void main(String args[])
	{
		Operator test = new Operator();
		System.out.println("计算运算符方法的输出:");
		test.computeOperator();
		System.out.println("比较运算符方法的输出:");
		test.compareOperator();
		System.out.println("位运算符方法的输出:");
		test.bitOperator();
		System.out.println("布尔运算符方法的输出:");
		test.booleanOperator();
		System.out.println("赋值运算符方法的输出:");
		test.evaluateOperator();
		System.out.println("其他运算符方法的输出:");
		test.otherOperator();
	}
}
分享到:
评论

相关推荐

    java运算符小程序

    Java运算符是编程语言中用于执行特定操作的关键符号,它们在Java程序中起着至关重要的作用,帮助我们处理数据和控制程序流程。在这个"java运算符小程序"中,我们可以探索和学习Java中的各种运算符及其用法。 1. **...

    Java运算符介绍.pptx.pptx

    Java运算符是编程语言中不可或缺的部分,它们帮助程序员执行各种计算和逻辑判断。在Java中,运算符主要分为四大类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. **算术运算符** - 加法运算符 (+):将两个...

    java运算符大全

    Java运算符是编程语言中用于执行特定计算或操作的符号。了解这些运算符对于编写高效、清晰的Java代码至关重要。以下是对Java运算符及其优先级的详细解释: 1. **点运算符** (.): 用于访问类的成员,如属性和方法。...

    Java运算符的使用

    Java运算符是编程中不可或缺的部分,它们用于执行各种计算和逻辑操作。Java提供了四大类运算符:算术运算符、位运算符、关系运算符和逻辑运算符。 1. **算术运算符**: - `+`:加法运算,可用于整数、浮点数的相加...

    Java运算符优先级

    ### Java运算符优先级详解 在Java编程语言中,了解并正确使用运算符优先级对于构建高效、可读性强的程序至关重要。虽然建议在实际开发过程中通过使用括号来明确表达式的计算顺序,而非依赖于复杂的优先级规则,但...

    java位运算符之&AND操作视频

    在Java中,"&"符号被用作位AND运算符,它在二进制级别上进行操作,对两个操作数的每一位进行比较,并返回一个新值。这个新值的每一位都是原操作数对应位进行AND运算的结果。下面我们将详细讨论这个知识点。 位...

    Java运算符+(优先级、目数)+.doc

    Java运算符是编程中至关重要的组成部分,它们用于执行各种计算和逻辑操作。了解运算符的优先级和目数对于编写高效、准确的代码至关重要。在Java中,运算符按照其功能分为不同的类别,并且有不同的结合性和目数。 1....

    JAVA 运算符的基本了解与使用

    JAVA 运算符是 Java 语言中的一种基本结构单元,用于执行各种运算操作。Java 运算符可以分为以下几类:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元运算符等。 1. 算术运算符 算术运算符是最...

    java运算符优先级.doc

    Java 运算符优先级和异常处理 Java 是一种面向对象的编程语言,它提供了丰富的运算符和异常处理机制,以帮助开发者更好地编写程序。在本文中,我们将详细介绍 Java 运算符的优先级和常见的异常类型,以及它们的解决...

    java学习-java的运算符

    本资料包"java学习-java的运算符"是针对Java运算符的学习资源,旨在帮助你深入理解和熟练运用Java中的各种运算符。 1. **算术运算符**:Java中的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余...

    java运算符流程控制数组基础题目

    在Java编程语言中,运算符、流程控制和数组是核心概念,它们构成了程序的基本结构。...通过解决相关的题目,开发者可以更好地掌握Java运算符、流程控制和数组的使用,从而编写出更高效、更清晰的代码。

    java运算符优先级[借鉴].pdf

    Java运算符优先级 Java语言中的运算符优先级是指在Java语言中各种运算符的执行顺序和结合性。了解Java运算符优先级是非常重要的,因为它可以帮助我们正确地编写Java程序,避免一些常见的错误。 以下是Java运算符...

    java运算符优先级[整理].pdf

    Java 运算符优先级 Java 运算符优先级是指 Java 语言中各种运算符的执行优先级顺序。正确理解运算符优先级对于编写正确的 Java 程序至关重要。 以下是 Java 运算符优先级的详细说明: 1. 点运算符(.) 点运算符...

    JAVA运算符.pdf

    JAVA运算符是Java编程语言中用于执行各种计算的特殊符号和字符。运算符可以是单一的符号,如加号(+),也可以是关键字,如`instanceof`。Java语言支持多种类型的运算符,主要可以分为以下几类: 1. 算术运算符:...

    Java 运算符 动力节点Java学院整理

    Java运算符是编程语言中不可或缺的部分,它们用于执行各种计算、比较和逻辑操作。在Java中,运算符主要分为四大类:算数运算符、关系运算符、逻辑运算符和位运算符。 **算数运算符** 包括加(+), 减(-), 乘(*), 除(/...

    Java语言2-Java运算符与表达式.zip_Java 语言运算符和表达式

    总的来说,Java语言2-Java运算符与表达式这一主题涵盖了编程中不可或缺的部分,无论你是初学者还是有经验的开发者,深入理解和应用这些概念都将有助于提高编程效率和代码质量。通过实践和练习,你可以更加灵活地运用...

    JAVA代码、方法、运算符大全

    三、Java运算符 Java支持多种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等: 1. 算术运算符:`+`、`-`、`*`、`/`、`%`分别代表加法、减法、乘法、除法和取余数。 2. 比较运算符:`==`、`!=`、`&gt;`、...

    java 移位运算符的资源

    Java 移位运算符是编程语言中用于处理二进制位的一种高效操作方式,它们能够对整数类型(byte, short, int, long)的值进行左移、右移和无符号右移操作。理解这些运算符对于优化代码和深入理解计算机底层工作原理至...

Global site tag (gtag.js) - Google Analytics