/**
*
* 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位运算符&AND操作视频!!!!
java位运算符之左移操作视频!!!!
java位运算符之|(OR)操作视频!!!
运算符操作原理总结,有例子解析。学JAVA时候,做的笔记,虽说不是很工整,一般还是能看懂的。
Java语言中的表达式是由运算符与操作数组合而成的,所谓的运算符就是用来做运算的符号。在Java中的运算符,基本上可分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、转型运算符等。
运算符是java语句表达的关键,是实现思想的关键。也有了这篇文档,学好运算符就不是那样难的事咯!
组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符...
Java操作符的优先级和结合性,对java的操作符的优先级和结合性做了详细的说明
Java中位运算符在操作逻辑型数据时与逻辑运算符&&、||、!不同的测试,测试结果逻辑运算符左侧的表达式会进行运算、右侧的不会,非运算一定会变;位运算符两侧都会变
本文档详细介绍了 Java 中常用的运算符,包括算术运算符、关系运算符和逻辑运算符。给出了每个运算符的示例代码和输出结果,...这些是 Java 编程中常用的基本概念和操作符,对学习和使用 Java 进行算法实现非常有帮助。
逻辑运算符 &&、 ||、 ! 注意:逻辑计算支持短路操作 表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65 &&:与运算,含义是两个条件必须同时成立,可以翻译为并且 ||:或运算,含义是两个条件中成立一个...
python三元运算符三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。 定义: 对于条件表达式b ? x : y,先计算条件b,然后进行判断...
同时,我们还可以看到Java运算符的使用,例如赋值运算符、算术运算符、比较运算符等。 2. Java数组:代码中使用了Java数组,例如int数组和double数组。我们可以看到数组的声明、初始化和使用。 3. Java循环结构:...
一元运算符,顾名思义,就是操作一个数的运算符,包括: 正:+,可以省略,表示一个数是正数,例如 +1 负:-,表示一个数是负数,例如 -1 自增 ++,表示将一个数在自身基础上加1,例如 1++ 其值为2 自减 --,表示...
北京动力节点-Java编程零基础教程-080-Java基本语法-运算符-逻辑运算符-异或操作与非操作.avi 北京动力节点-Java编程零基础教程-081-Java基本语法-运算符-条件运算符.avi 北京动力节点-Java编程零基础教程-082-...
第1篇为Java语言基本语法,包括Java语言概述、配置开发环境、Java中的基本数据类型、Java运算符、Java流程控制语句和数组。第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类...
第1篇为Java语言基本语法,包括Java语言概述、配置开发环境、Java中的基本数据类型、Java运算符、Java流程控制语句和数组。第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类...
通过控制台输入输出,DOS窗口,以复数类为例,通过运算符重载成员函数的方式,实现复数类的加减法运算