java 运算符%_Java运算符

Java语言中的表达式是由运算符与操作数组合而成的,所谓的运算符就是用来做运算的符号。

在Java中的运算符,基本上可分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、转型运算符等。

一、算术运算符       所谓算术运算符,也就是我们数学中学到的加、减、乘、除等运算。这些操作可以对几个不同类型的数字进行混合运算,为了保证操作的精度,系统在运算的过程中会做相应的转换。

1、数字精度       所谓数字精度,也就是系统在做数字之间的算术运算时,为了尽最大可能地保持计算机的准确性,而自动进行相应的转换,将不同的数据类型转变为精度最高的数据类型。规则如下:

1)当使用运算符把两个操作数结合到一起时,在进行运算前两个操作数会转化成相同的类型。

2)两个操作数中有一个是double类型的,则另一个将转换成double型。

3)两个操作数中有一个是float类型的,则另一个将也转换成float型。

4)两个操作数中有一个是long类型的,则另一个将也转换成long型。

5)任何其它类型的操作,两个操作数都要转换成int类型。

2、整数型运算(int型)

对于int型的相关操作,加、减、乘的结果都是非常容易理解的,重点讲一下除(/)的运算。

两个整数相除的结果是整数,这一点与数学中是不同的,在Java中,两个整数相除的结果类似于数学中的求模运算。整除的余数是用%表示,例如15 / 2 = 7,而不是7.5,15 % 2 = 1。我们用程序验证一下:

/*两个整数相除及求余数*/

public class Divide

{

public static void main(String[] args)

{

int a = 15;

int b = 2;

double c = 2;

System.out.println(a + "/" + b + "=" + (a / b));

System.out.println(a + "%"+ b + "=" + (a % b));

System.out.println(a + "/" + c + "=" + (a / c));

System.out.println(a + "%" + c + "=" + (a % c));

}

}

输出结果:

15 / 2 = 7

15 % 2 = 1

15 / 2.0  =  7.5

15 % 2.0 = 1.0

3、自增和自减运算符

在循环与控制中,我们经常会用到类似于计数器的运算,它们的特征是每次的操作都是加1或减1。在Java中提供了自增、自减运算符,X++使变量X的当前值每次增加1,而X--是自减运算符,每次操作使当前X的值减1。例如:

/*测试自增、自减操作*/

public class SelfAction

{

public static void main(String[] args)

{

int x = 10;

int a = x+ x++;

System.out.println("a =" + a);

System.out.println("x =" + x);

int b = x + ++x;

System.out.println("b =" + b);

System.out.println("x =" + x);

int c = x + x--;

System.out.println("c =" + c);

System.out.println("x =" + x);

int d = x + --x;

System.out.println("d =" + d);

System.out.println("x =" + x);

}

}输出结果:

a = 20

x = 11

b = 23

x = 12

c = 24

x = 11

d = 21

x = 10

二、关系运算符        Java具有完美的关系运算符。这些关系运算符基本上同数学中的关系运算符是一致的。“>”大于、“=”大于等于、“<=”小于等于、“==”等于、“!=”不等于。例如:

/*关系运算符测试*/

public class RelationTest

{

public static void main(String[] args)

{

boolean x, y, z;

int a = 15;

int b = 2;

double c =15;

x = a > b;  //true;

y = a < b;  //false;

z = a != b;  //true;

System.out.println("x =" + x);

System.out.println("y =" + y);

System.out.println("z =" + z);

}

}输出结果:

x = true

y = false

z = true

三、逻辑运算符

在Java语言中有三种逻辑运算符,它们是NOT(非,以符号“!”表示)、AND(与,以符号“&&”表示、)OR(或,以符号“||”表示)。

1、NOT运算符         NOT运算符是用来表示相反的意思。

NOT逻辑关系值表

A

!A

true

false

false

true

2、AND运算符         AND运算符表示“与”的意思,也就是和的意思。

AND逻辑关系值表

A

B

A&&B

false

false

false

true

false

false

false

true

false

true

true

true

3、OR运算符         OR运算符是用来表示“或”就像我们日常生活中理解的一样,两者只要有一个为“真”,结果就为“真”。

OR逻辑关系值表

A

B

A||B

false

false

false

true

false

true

false

true

true

true

true

true

/*逻辑运算符测试*/

public class LogicSign

{

public static void main(String[] args)

{

boolean x, y, z, a, b;

a = 'a' > 'b';

b = 'R' != 'r';

x = !a;

y = a && b;

z = a || b;

System.out.println("x =" + x);

System.out.println("y =" + y);

System.out.println("z =" + z);

}

}输出结果:

x = true

y = false

z = true

4、“短路”现象

在运用逻辑运算符进行相关的操作时,我们会遇到一种很有趣的现象;短路现象。

对于true && false根据我们的讲述,处理的结果已经是false了,也就是说无论后面是结果是“真”还是“假”,整个语句的结果肯定是false了,所以系统就认为已经没有必要再进行比较下去了。也就不会再执行了,这种理象就是我们所说的短路现象。

四、位运算符

所有的数据、信息在计算机中都是以二进制形式存在的。我们可以对整数的二进制位进行相关的操作。这就是按位运算符,它主要包括:位的“与”、位的“或”、位的“非”、位的“异或”。

1)位的“与”,用符号“&”表示,它属于二元运算符。 与位运算值表:

A

B

A&B

1

1

1

1

0

0

0

1

0

0

0

0

2)位的“或”用符号“|”表示,它属于二元运算符。。   或位运算值表:

A

B

A|B

1

1

1

0

1

1

1

0

1

0

0

0

3)位的“非”,用符号“~”表示,它是一元运算符,只对单个自变量起作用。它的作用是使二进制按位“取反”。 非位运算值表:

A

~A

1

0

0

1

4)位的“异或”,用符号“^”表示,它属于二元运算符。异或位运算值表:

A

B

A^B

1

1

0

0

1

1

1

0

1

0

0

0

/*测试位的四种运算*/

public class BitOperation

{

public static void main(String[] args)

{  int a = 15;

int b = 2;

int x = a & b;

int y = a | b;

int z = a ^ b;

System.out.println(a + "&" + b + "=" + x);

System.out.println(a + "|" + b + "=" + y); System.out.println(a + "^" + b + "=" + z);

}

}

输出结果:

15 & 2 = 2

15 | 2 = 15

15 ^ 2 = 13

五、移位运算符

移位运算符的面向对象也是二进制的“位”。可以单独用移位运算符来处理int型数据。它主要包括:左移位运算符(<>)、“无符号”右移运算符(>>>)

1)左移位运算符

左移位运算符,用符号“<

2)“有符号”右移运算符

“有符号”右移运算符,用符号“>>”表示。它是将运算符左边的运算对象向右移动运算符右侧指定的位数。它使用了“符号扩展”机制,也就是说,如果值为正,在高位补0,若为负,则在高位补1。

3)“无符号”右移运算符

“无符号”右移运算符,用符号“>>>”表示。它同“有符号”右移运算符的移动规则是一样的,惟一的区别就是:“无符号”右移运算符,它采用了“零扩展”,也就是说,无论值为正负,都在高位补0。

/*移位运算符测试*/

public class BitMotion

{

public static void main(String[] args)

{

int a = 15;

int b = 2;

int x = a << b;

int y = a >> b;

int z = a >>> b;

System.out.println(a + "<

System.out.println(a + ">>" + b + "=" + y);

System.out.println(a + ">>>" + b + "=" + z);

}

}输出结果:

15 << 2 =60

15 >> 2 = 3

15 >>> 2 =3

六、赋值运算符        赋值运算符是程序中最常用的运算符了,只要有变量的声明,就要有赋值运算。如a = 3;这里的a我们都知道是变量名,根据前面对变量的定义,我们可以知道这里的a实际上就是内存空间的一个名字,它对应的是一段内存空间,一在要在这个空间放入3这个值。这个放入的过程就实现了赋值的过程。

赋值运算一览表运算符

一般表示法

Java语言表示法

+=

a = a + b

a += b

-=

a = a - b

a -= b

*=

a = a * b

a *=b

/=

a=a / b

a /= b

%=

a = a % b

a %= b

>>=

a = a >> b

a >>= b

>>>=

a = a >>> b

a >>>= b

七、三元运算符        三元运算符比较罕见,因为它有三个运算对象,但它也确实属于运算符的一种,因为它最终也是产生一个值。它也可以转化为条件判断语句,只不过这种处理方式更简洁、明了。

它的运算过程是这样的:

如果“布尔表达式”的结果是“true”,就返回值0;

如果“布尔表达式”的结果是“false”,就返回值1;

它的返回值做为最终结果返回。

八、逗号运算符

在Java中,逗号运算符的惟一使用场所就是在for循环语句中。

九、字符串运算符        “+”号这个运算符,在Java中有一项特殊的用法,它不仅起到连接不同的字符串,还有一种隐式的转型功能。

十、转型运算符

转型运算符可以说是一种特殊的运算符,它是将一种类型的数据或对象,强制转变为另一种类型。

/*强制转型测试*/

public class TypeTran

{

public static void main(String[] args)

{

int x ;

double y;

x = (int)22.5 + (int)34.7;  //强制转型可能引起精度丢失

y = (double)x;

System.out.println("x = " + x);

System.out.println("y = " + y);

}

}输出结果:

x = 56

y = 56.0

分析:

可以发现,由于强制转型,使数据精度丢失。系统会忽略强制转型的检查。所以对于强制转型,必须清楚转型是否可行。

最后总结一下运算符的优先级

运算符

优先级

括号()

1最高

++、--

2

~、!

3

*、/、%

4

+、-(减)

5

<>、>>>

6

>、=、<=

7

==、!=

8

&

9

^

10

|

11

&&

12

||

13

? :

14

posted on 2007-05-14 14:24 心随Wǒ动 阅读(16778) 评论(8)  编辑  收藏

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值