/**
*
* 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中的各种运算符及其用法。 1. **...
Java运算符是编程语言中不可或缺的部分,它们帮助程序员执行各种计算和逻辑判断。在Java中,运算符主要分为四大类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. **算术运算符** - 加法运算符 (+):将两个...
Java运算符是编程语言中用于执行特定计算或操作的符号。了解这些运算符对于编写高效、清晰的Java代码至关重要。以下是对Java运算符及其优先级的详细解释: 1. **点运算符** (.): 用于访问类的成员,如属性和方法。...
Java运算符是编程中不可或缺的部分,它们用于执行各种计算和逻辑操作。Java提供了四大类运算符:算术运算符、位运算符、关系运算符和逻辑运算符。 1. **算术运算符**: - `+`:加法运算,可用于整数、浮点数的相加...
### Java运算符优先级详解 在Java编程语言中,了解并正确使用运算符优先级对于构建高效、可读性强的程序至关重要。虽然建议在实际开发过程中通过使用括号来明确表达式的计算顺序,而非依赖于复杂的优先级规则,但...
在Java中,"&"符号被用作位AND运算符,它在二进制级别上进行操作,对两个操作数的每一位进行比较,并返回一个新值。这个新值的每一位都是原操作数对应位进行AND运算的结果。下面我们将详细讨论这个知识点。 位...
Java运算符是编程中至关重要的组成部分,它们用于执行各种计算和逻辑操作。了解运算符的优先级和目数对于编写高效、准确的代码至关重要。在Java中,运算符按照其功能分为不同的类别,并且有不同的结合性和目数。 1....
JAVA 运算符是 Java 语言中的一种基本结构单元,用于执行各种运算操作。Java 运算符可以分为以下几类:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元运算符等。 1. 算术运算符 算术运算符是最...
Java 运算符优先级和异常处理 Java 是一种面向对象的编程语言,它提供了丰富的运算符和异常处理机制,以帮助开发者更好地编写程序。在本文中,我们将详细介绍 Java 运算符的优先级和常见的异常类型,以及它们的解决...
本资料包"java学习-java的运算符"是针对Java运算符的学习资源,旨在帮助你深入理解和熟练运用Java中的各种运算符。 1. **算术运算符**:Java中的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余...
在Java编程语言中,运算符、流程控制和数组是核心概念,它们构成了程序的基本结构。...通过解决相关的题目,开发者可以更好地掌握Java运算符、流程控制和数组的使用,从而编写出更高效、更清晰的代码。
Java运算符优先级 Java语言中的运算符优先级是指在Java语言中各种运算符的执行顺序和结合性。了解Java运算符优先级是非常重要的,因为它可以帮助我们正确地编写Java程序,避免一些常见的错误。 以下是Java运算符...
Java 运算符优先级 Java 运算符优先级是指 Java 语言中各种运算符的执行优先级顺序。正确理解运算符优先级对于编写正确的 Java 程序至关重要。 以下是 Java 运算符优先级的详细说明: 1. 点运算符(.) 点运算符...
JAVA运算符是Java编程语言中用于执行各种计算的特殊符号和字符。运算符可以是单一的符号,如加号(+),也可以是关键字,如`instanceof`。Java语言支持多种类型的运算符,主要可以分为以下几类: 1. 算术运算符:...
Java运算符是编程语言中不可或缺的部分,它们用于执行各种计算、比较和逻辑操作。在Java中,运算符主要分为四大类:算数运算符、关系运算符、逻辑运算符和位运算符。 **算数运算符** 包括加(+), 减(-), 乘(*), 除(/...
总的来说,Java语言2-Java运算符与表达式这一主题涵盖了编程中不可或缺的部分,无论你是初学者还是有经验的开发者,深入理解和应用这些概念都将有助于提高编程效率和代码质量。通过实践和练习,你可以更加灵活地运用...
三、Java运算符 Java支持多种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等: 1. 算术运算符:`+`、`-`、`*`、`/`、`%`分别代表加法、减法、乘法、除法和取余数。 2. 比较运算符:`==`、`!=`、`>`、...
Java 移位运算符是编程语言中用于处理二进制位的一种高效操作方式,它们能够对整数类型(byte, short, int, long)的值进行左移、右移和无符号右移操作。理解这些运算符对于优化代码和深入理解计算机底层工作原理至...