Java 大部分运算符和c,c++ 类似,(c++ 奇葩的特性确实折磨人)
主要与以下几类
1 算数运算符
算数运算符 通常 有 加减乘除 以及 取模(%),由他们完成整数和浮点数运算,3%2 = 1;
15.2%5 = 0.2;5%-3 = 2; -5%-3 = -2;-5%3 = -2;
算数运算符另有 ++ 和 – – l两个运算符,前者将一个数加一,后者将一个数减一,两者可以放在一个数的前面,也可以放在一个数后面,如 i++ ,++i,i– – ,– – i, 含义略微不同,放在前面则在i使用前 +1 或者 - 1 ,放在后面则在i使用后 + 1或者-1;
2关系运算符
关系运算符用来比较两个值,包括 > ,>=,<,<=,==,!=,六种,关系运算符都是二元运算符,每个运算符都带有两个参数,运算的结果是一个逻辑值,
Java 允许 == 和 != 运用于任何类型。
3 逻辑运算符
逻辑运算符包括&& ,|| ,!,前两者是二元运算符,后者是一元运算符。
运算符是一元、二元还是三元,要看它要求有几个数参加运算,比如”++”运算符,只需要一个数据单元参加运算,如++a,它就是一元运算符;而”+”、”-“等运算符,如a+b,要求有两个数据单元参加运算,它就是二元运算符;”?:”运算符要求三个运算单元,如(ab)?c:d,它就是三元运算符。
4位运算符
位运算符用来对二进制进行操作,包括 按位取反(~),按位与(&),按位或(|),异或(^),右移(>>),左移(<<),以及无符号右移(>>>),位运算符只能对整数和字符型数据进行操作。
计算 << 和 >> 的简单方法 a>>b = a/2的b次方 , a << b = a*2的b次方;
位运算符实例
public class Test {
public static void main(String[] args) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
System.out.println("a & b = " + c );
c = a | b; /* 61 = 0011 1101 */
System.out.println("a | b = " + c );
c = a ^ b; /* 49 = 0011 0001 */
System.out.println("a ^ b = " + c );
c = ~a; /*-61 = 1100 0011 */
System.out.println("~a = " + c );
c = a << 2; /* 240 = 1111 0000 */
System.out.println("a << 2 = " + c );
c = a >> 2; /* 15 = 1111 */
System.out.println("a >> 2 = " + c );
c = a >>> 2; /* 15 = 0000 1111 */
System.out.println("a >>> 2 = " + c );
}
}
| 操作符 | 描述 | 例子 |
|---|---|---|
| & | 如果相对应位都是1,则结果为1,否则为0 | A&B),得到12,即0000 1100 |
| | | 如果相对应位都是0,则结果为0,否则为1 | (A | B)得到61,即 0011 1101 |
| ^ | 如果相对应位值相同,则结果为0,否则为1 | A ^ B)得到49,即 0011 0001 |
| 〜 | 按位补运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
| << | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
| >> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
| >>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 1111 |
本文详细介绍了Java中的各类运算符,包括算数运算符、关系运算符、逻辑运算符及位运算符,并通过实例展示了位运算符的具体应用。
345

被折叠的 条评论
为什么被折叠?



