JAVA运算符
导航: 上一页 | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion
运 算 符 指 明 对 操 作 数 所 进 行 的 运 算 。 按 操 作 数 的 数 目来分 ,可 以 有 一元 运 算 符 (如 ++、--),二 元 运 算 符 (如 +、 >)和 三元 运 算 符 (如?:),它 们 分 别 对 应 于一 个 、 两 个 和 三 个 操 作 数。 对 于 一 元 运 算 符 来 说 ,可 以 有 前缀 表 达 式 (如 ++i )和 后 缀表 达 式 (如 i++),对 于 二 元 运 算 符 来 说 则 采 用 中 缀 表 达 式 (如 a+b)。 按 照运 算 符 功 能 来 分 ,基 本 的 运 算 符 有 下 面 几 类 :
1.算 术 运 算 符 (+,-,*,/,%,++,--)
2.关 系 运 算 符 (>,<,>=,<=,==,!=)
3.布 尔 逻 辑 运 算 符 (!,&&,||)
4.位 运 算 符 (>>,<<,>>>,&,|,^,~ )
5.赋 值 运 算 符 (=,及 其 扩 展 赋 值 运 算 符 如 +=)
6.条 件 运 算 符 ( ?:)
7.其 它 (包 括 分 量 运 算 符 · ,下 标 运 算 符 [],实 例 运 算 符 instanc eof,内 存 分 配运 算 符 new,强 制 类 型 转 换 运 算 符 (类 型 ), 方 法调 用 运 算 符 () 等 )
本 章 中 我 们 主 要 讲 述 前 6类 运 算 符 。
算 术 运 算 符[ ]
算 术 运 算 符 作 用 于 整 型 或 浮 点 型 数 据 ,完 成 算 术 运 算。
一 、 二 元 算 术 运 算 符 ,如 下 表 所 示
运算符 用法 描述
+ op1+op2 加
- op1-op2 减
- op1*op2 乘
/ op1/op2 除
% op1%op2 取模(求余)
Java对 加 运 算 符 进 行 了 扩 展 ,使 它 能 够 进 行 字 符 串 的连 接,如 "abc"+"de",得到 串 "abcde"。 我 们 将 在第 七 章 中 讲 解 。
与 C、 C++不 同 ,对 取 模 运 算 符 %来 说 ,其 操 作 数 可 以为浮点 数 , 如37.2%10=7.2。
二 、 一 元 算 术 运 算 符 ,如 下 表 所 示 :
运算符 用法 描述
+ +op 正值
- -op 负值
++ ++op,op++ 加1
-- --op,op-- 减1
i++与 ++i的 区 别
i++在 使 用 i之 后 ,使 i的 值 加 1,因 此 执 行 完 i++后 ,整 个 表达式的 值 为 i,而 i的 值变 为 i+1。
++i在 使 用 i之 前 ,使 i的 值 加 1,因 此 执 行 完 ++i后 ,整 个 表达式和 i的 值 均 为 i+1。
对 i--与 --i同 样 。
例 3.1.下 面 的 例 子 说 明 了 算 术 运 算 符 的 使 用
public class ArithmaticOp{
public static void main( String args[] ){
int a=5+4; //a=9
int b=a*2; //b=18
int c=b/4; //c=4
int d=b-c; //d=14
int e=-d; //e=-14
int f=e%4; //f=-2
double g=18.4;
double h=g%4; //h=2.4
int i=3;
int j=i++; //i=4,j=3
int k=++i; //i=5,k=5
System.out.println("a = "+a);
System.out.println("b = "+b);
System.out.println("c = "+c);
System.out.println("d = "+d);
System.out.println("e = "+e);
System.out.println("f = "+f);
System.out.println("g = "+g);
System.out.println("h = "+h);
System.out.println("i = "+i);
System.out.println("j = "+j);
System.out.println("k = "+k);
}
}
其结果为:
C:\>java ArithmaticOp
a = 9
b = 18
c = 4
d = 14
e = -14
f = -2
g = 18.4
h = 2.4
i = 5
j = 3
k = 5
关 系 运 算 符[ ]
关 系 运 算 符 用 来 比 较 两 个 值 ,返 回 布 尔 类 型 的值true或 false。关 系 运 算 符 都 是 二 元 运 算 符 ,如 下 表 所 示 :
运算符 用法 返回true的情况
> op1>op2 op1大于op2
>= op1>=op2 op1大于或等于op2
< op1<op2 op1小于op2
<= op1<=op2 op1小于或等于op2
== op1==op2 op1与op2相等
!= op1!=op2 op1与op2不等
Java中 ,任 何 数 据 类 型 的 数 据 (包 括 基 本 类 型 和 组 合 类 型)都可 以 通 过 ==或!=来 比 较 是 否 相 等 (这 与 C、 C++不 同 )。
关 系 运 算 的 结 果 返 回 true或 false,而不是C、C++中 的 1或 0。
关 系 运 算 符 常 与 布 尔 逻 辑 运 算 符 一 起 使 用 ,作 为 流 控 制语句 的 判 断 条件 。 如
if( a>b && b==c)
布 尔 逻 辑 运 算 符[ ]
布 尔 逻 辑 运 算 符 进 行 布 尔 逻 辑 运 算 ,如 下 表 所 示 :
op1 op2 op1&&op2 op1||op2 !op1
false false false false true
false true false true true
true false false true false
true true true true false }
·&&、‖ 为二元运算符,实现逻辑与、逻辑或。
·! 为一元运算符,实现逻辑非。
·对 于 布 尔 逻 辑 运 算 , 先 求 出 运 算 符 左 边 的 表 达 式 的 值 , 对 或 运 算 如 果 为 true, 则 整 个 表 达 式 的 结 果 为 true, 不 必对 运 算 符 右 边 的 表 达 式 再 进 行 运 算 ; 同 样 , 对 与 运 算 , 如果 左 边 表 达 式 的 值 为 false, 则 不 必 对 右 边的 表 达式 求 值 , 整个表 达 式 的 结果 为 false。
下面的例子说明了关系运算符和布尔逻辑运算符的使用。
public class RelationAndConditionOp{
public static void main( String args[] ){
int a=25,b=3;
boolean d=a<b; //d=false
System.out.println("a<b = "+d);
int e=3;
if(e!=0 && a/e>5)
System.out.println("a/e = "+a/e);
int f=0;
if(f!=0 && a/f>5)
System.out.println("a/f = "+a/f);
else
System.out.println("f = "+f);
}
}
其运行结果为:
C:\>java RelationAndConditionOp
a<b = false
a/e = 8
f = 0
位 运 算 符[ ]
位 运 算 符 用 来 对 二 进 制 位 进 行 操 作 ,Java中 提 供 了 如 下表所 示 的 位 运 算符 :
位 运 算 符 中 ,除 ~ 以 外 ,其 余 均 为 二 元 运 算 符 。
操 作 数 只 能 为 整 型 和 字 符 型 数 据 。
补 码[ ]
Java使 用 补 码 来 表 示 二 进 制 数 ,在 补 码 表 示 中 ,最 高 位 为符号 位 ,正 数 的 符 号 位 为 0,负 数 为 1。 补 码 的 规 定 如 下 :
对 正 数 来 说 ,最 高 位 为 0,其 余 各 位 代 表 数 值 本 身 (以 二 进制表 示 ),如 +42的补 码 为 00101010。
对 负 数 而 言 ,把 该 数 绝 对 值 的 补 码 按 位 取 反 ,然 后 对 整个数 加 1,即 得 该 数的 补 码 。 如 -42的 补 码 为 11010110 (00101010 按位 取 反 11010101 +1=11010110 )
用 补 码 来 表 示 数 ,0的 补 码 是 唯 一 的 ,都 为 00000000。 (而 在原码 ,反 码 表 示中 ,+0和 -0的 表 示 是 不 唯 一 的 ,可 参 见 相 应 的书 籍 )。 而 且 可 以用 111111表 示 -1的 补 码 (这 也 是 补 码 与 原 码和 反 码 的 区 别 )。
按 位 取 反 运 算 符 ~[ ]
~ 是 一 元 运 算 法 ,对 数 据 的 每 个 二 进 制 位 取 反 ,即 把 1变为 0,把 0变 为 1。
例 如 :
0010101
~
1101010
注 意 ,~ 运 算 符 与 - 运 算 符 不 同 ,~ 21≠ -21。
按 位 与 运 算 符 &[ ]
参 与 运 算 的 两 个 值 ,如 果 两 个 相 应 位 都 为 1,则 该 位 的 结果为 1,否 则 为 0。即 :
0 & 0 = 0,0 &1 = 0,1 & 0 = 0,1 & 1 = 1