-动力节点告诉你java的运算符有哪些
- 格式:docx
- 大小:46.83 KB
- 文档页数:8
Java 运算符目录1、自增自减运算符 (2)2、算术运算符 (2)3、位运算符 (3)4、逻辑运算符 (5)5、关系运算符 (6)6、短路逻辑运算符 (8)7、赋值运算符 (8)8、Java运算符优先级 (10)9、条件运算符(?:) (11)10、instanceof 运算符 (12)1、自增自减运算符1.1自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。
1.2前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
1.3后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算2、算术运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。
下表列出了所有的算术运算符。
3、位运算符java 定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。
假设a = 60,b = 13;它们的二进制格式表示将如下:4、逻辑运算符下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假下表为Java支持的关系运算符\6、短路逻辑运算符当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
7、赋值运算符下面是Java语言支持的赋值运算符:8、Java运算符优先级9、条件运算符(?:)条件运算符也被称为三元运算符。
该运算符有3个操作数,并且需要判断布尔表达式的值。
该运算符的主要是决定哪个值应该赋值给变量。
10、instanceof 运算符该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
JAVA基础之java运算符大百科运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。
下面介绍JAVA 中的运算符。
一、算术运算符:单目:+(取正)-(取负)++(自增1)--(自减1)双目:+-*/%(取余)三目:a>b?true:false说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
二、关系运算:等于符号:==,不等于符号:!=,大于符号:>,小于符号:<,大于等于符号:>=,小于等于符号:<=。
三、位运算符逻辑运算符:位运算符与(&)、非(~)、或(|)、异或(^)&:当两边操作数的位同时为1时,结果为1,否则为0。
如1100&1010=1000|:当两边操作数的位有一边为1时,结果为0,否则为1。
如1100|1010=1110~:0变1,1变0^:两边的位不同时,结果为1,否则为0.如1100^1010=0110逻辑运算符与(&&)、非(!)、或(||)四、赋值运算符=+=-=*=/=%=&=^=|=<<=>>=五、instanceof运算符该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。
当左面的对象是右面的类创建的对象时,该运算符运算结果是true,否则是false。
六、运算符综述Java的表达式就是用运算符连接起来的符合Java规则的式子.运算符的优先级决定了表达式中运算执行的先后顺序.例如,x<y&&!z相当于(x<y)&&(!z),没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序.运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3相当于(8-5)+3.逻辑否运算符的结合性是右到左,x相当于!(!x).表3.4是Java所有运算符的优先级和结合性。
java中的符号1.算术运算符运算符 含义 范例 结果 + 加法运算符 5+3 8- 减法运算符 5-3 2 * 乘法运算符 5*3 15/ 除法运算符 5/3 1 % 取模(取余)运算符 5%3 2++ ⾃增运算符 i=2;j=i++/j=++i i=3;j=2/3-- ⾃减运算符 i=2,j=i--/j=--i i=1;j=2/12.关系运算符运算符 含义 范例 结果== 等于 5==6 false!= 不等于 5!=6 true> ⼤于 5>6 false< ⼩于 5<6 true>= ⼤于等于 5>=6 false<= ⼩于等于 5<=6 true 3.逻辑运算符运算符 含义 运算规则& 逻辑与 两个操作都是true,结果才为true;不论左边取值,右边的表达式都会进⾏运算 | 逻辑或 两个操作数⼀个是true,结果为true;不论左边取值,右边的表达式都会进⾏运算^ 逻辑异或 两个操作数相同,结果为false;两个操作数不同,结果为true! 逻辑反(逻辑⾮) 操作数为true,结果为false;操作数为false结果为true && 短路与 运算规则同"&",不同在于左边为false,右边的表达式不会运算 || 短路或 运算规则同"|",不同在于如果左边为true,右边的表达式不会运算4.位运算符 含义 运算规则& 按位与 两个操作数都是1,结果才为1| 按位或 两个操作数⼀个为1,结果为1 ^ 按位异或 两个操作数相同,结果为0;两个操作数不同,结果为1 ~ 按位⾮/取反 操作数为1,结果为0;操作数为0,结果为1<< 左移 右侧空补位0>> 右移 左侧空位补最⾼位,即符号位>>> ⽆符号右移 左侧空位补0运算符的优先级优先级 运算符 1 ()、[]、. 2 !、~、++、--3 */%4 +、-5 <<、>>、>>>6 <、<=、>、>=、instanceof7 ==、!=8 &9 ^10 |11 &&12 ||13 ?:14 =、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>=。
java-运算符总结java运算符总结Java运算符共包括这⼏种:算术运算符、⽐较运算符、位运算符、逻辑运算符、赋值运算符和其他运算符。
(该图来⾃⽹络)简单的运算符,就不过多介绍使⽤了,可⾃⾏测试。
关于赋值运算,可以结合算术运算和位运算来简化代码。
int a = 5;a += a; // a = a + a;a /= a; // a = a / a;a %= a; // a = a % a;a &= 6; // a = a & 6;//.....理解⾃增⾃减运算符⾃增⾃减分为前置和后置。
例如:i++++i i----i。
要明确⼀点,前置与后置的⾃增或⾃减运算符若没运⽤到表达式中,那么⽆区别;若是参与到表达式运算中,只需记住:谁在前⾯就先执⾏谁.int a = 0;a++; //或者++aSystem.out.println(a); // a输出1 //最常见的for循环中,在迭代条件中,i++ 和 ++i⽆区别,因为没有⽤于表达式。
将前置⾃增和后置⾃增运⽤到表达式int a = 5;System.out.println(a--); //5,先打印a的值,之后a⾃减1System.out.println(a); //4System.out.println(++a); //5, 先对a值⾃增,然后打印a值复杂⼀点,更好的理解前置和后置的区别:int a = 6;int b = 8;int c = ++a + b-- - a-- + --b + b++ + --a;System.out.printf("%d|%d|%d", a,b,c); // 5,7,25使⽤图⽚来理解会更加⼀⽬了然。
再随便给⼀个,按照图⽰⽅式去理解⾃增⾃减。
int a = 6,b = 8;int c = (--a) + (a--) - (b--) + (++b) + (a++) - (b--); //加括号更容易阅读// int c = --a + a-- - b-- + ++b + a++ - b--;System.out.printf("%d|%d|%d", a,b,c); // 5,7,6}通过图⽚的理解⽅式去学习⾃增⾃减,⽆论是前置还是后置,⽆论会有多复杂,都可以很有条理的解决。
JAVA中常用的运算符有以下几种我们日常了解到的运算符有有+(加号)、-(减号)、*(乘号)、/(除号)和%(求余),那么在JAVA中有哪些我们不知晓的运算符呢,下面就介绍下JAVA中的运算符。
一、自增和自减运算符自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。
操作元必须是一个整型或浮点型变量。
放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算;放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。
二、算术运算符ava中的算术运算符主要有+(加号)、-(减号)、*(乘号)、/(除号)和%(求余),它们都是二元运算符。
三、比较运算符比较运算符属于二元运算符,用于程序中的变量和变量之间、变量和常量之间以及其他类型的信息之间的比较。
比较运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则结果是false。
比较运算符通常用在条件语句中来作为判断的依据。
四、逻辑运算符逻辑运算符包括&&(&)(逻辑与)、||(|)(逻辑或)和!(逻辑非),返回值为布尔类型的表达式,操作元也必须是boolean型数据。
和比较运算符相比,逻辑运算符可以表示更加复杂的条件,例如连接几个关系表达式进行判断。
在逻辑运算符中,除了“!”是一元运算符之外,其余的都是二元运算符。
五、位运算符位运算符用于处理整型和字符型的操作数,对其内存进行操作,数据在内存中以二进制的形式表示,例如int型变量7的二进制表示是00000000 00000000 00000000 00000111,-8的二进制表示是111111111 111111111 1111111 11111000,最高位是符号位,0表示正数,1表示负数。
六、运算符优先级七、三元运算符三元运算符是Java中唯一一个三目运算符,其操作元有三个,第一个是条件表达式,其余的是两个值,条件表达式成立时运算取第一个值,不成立时取第二个值,示例代码如下所示:boolean b = 20 < 45 ? true : false;。
Java技术⽂档—Java中的运算符有哪些?
Java的运算符有算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、条件运算符,下⾯⼀起来⼀⼀学习下吧~
1、算术运算符
Java中的运算符有哪些?
两个整数之间的相除(/)运算结果还是整数,其结果是除的结果的整数部分。
例如:5/2结果为2
要获得实数结果,运算中⾄少⼀个浮点数。
例如:5/2.0结果为2.5
2、关系运算符
Java中的运算符有哪些?
3、赋值运算符
Java中的运算符有哪些?
4、逻辑运算符
Java中的运算符有哪些?
在使⽤短路与(&&)时,如果第⼀个操作数(或表达式)为“假”,则不再计算第⼆个操作数(或表达式),直接返回“假”。
在使⽤短路或(||)时,如果第⼀个操作数(或表达式)为“真”,则不再计算第⼆个操作数(或表达式),直接返回“真”。
逻辑运算符只能⽤于布尔(boolean)类型之间;其结果值为布尔(boolean)类型。
5、位运算符
Java中的运算符有哪些?
位运算符只可⽤于整数类型、char类型,不可应⽤于浮点类型。
6、条件运算符
条件运算符是⼀个三⽬运算符,也是唯⼀的⼀个三元运算符,符号为“? :”,在程序中能实现简单的判断功能。
语法格式:
表达式1?表达式2:表达式3
其中表⽰1是⼀个布尔表达式,如果表达式1结果为true,则执⾏表达式2,否则执⾏表达式3。
举例说明:求a,b的最⼤值。
java常见运算符
Java中的算术运算符包括加号+、减号-、乘号*、除号/、取模%等。
其中,加号还可以用于字符串的拼接操作。
2. 关系运算符
Java中的关系运算符包括大于号>、小于号<、大于等于号>=、小于等于号<=、等于号==、不等于号!=等。
这些运算符通常用于判断两个值之间的大小关系。
3. 逻辑运算符
Java中的逻辑运算符包括与运算符&&、或运算符||、非运算符!等。
这些运算符通常用于组合多个条件,实现复杂的条件判断。
4. 位运算符
Java中的位运算符包括按位与&、按位或|、按位异或^、按位取反~、左移<<、右移>>等。
这些运算符通常用于对二进制数进行位运算。
5. 赋值运算符
Java中的赋值运算符包括等号=、加等于+=、减等于-=、乘等于*=、除等于/=、取模等于%=等。
这些运算符用于将一个值赋给变量,并可以同时进行相应的算术运算。
6. 条件运算符
Java中的条件运算符包括问号?和冒号:,通常也称为三目运算符。
该运算符通常用于简化if...else语句的写法。
以上是Java中常见的运算符,掌握这些运算符的使用方法对于
Java程序员来说是非常重要的。
Java初级学习(四)Java运算符1.Java运算符*运算符的优先级要求:多⽤(),提⾼代码可读性,不要只依靠运算符的优先级,也不⽤刻意去记。
算术运算符:+ - * / %(取余) ++ --赋值运算符:=关系运算符:> < >= <= == !=(不等于) instanceof ========》这⾥结果是true或false 逻辑运算符:&&(与and,只有左右都为true时结果才为true) ||(或or) !(⾮no)位运算符:条件运算符:? :1)算数运算符(1)%:11除以5等于2余1,也就是 11%5=1(2)++ --前缀⾃增⾃减法(++i,--i): 先进⾏⾃增或者⾃减运算,再进⾏表达式运算。
*执⾏⼀次 i++ 或者 ++i 就等于执⾏⼀次 i=i+1 这条命令。
同理,执⾏⼀次 i-- 或者 --i 就等于执⾏⼀次 i=i-1 这条命令。
后缀⾃增⾃减法(i++,i--): 先进⾏表达式运算,再进⾏⾃增或者⾃减运算。
1public class Demo04 {2public static void main(String[] args){34int i = 2;//定义⼀个变量5//i=i+1;下⾯⼀⾏的++i,就相当于在执⾏给b赋值之前,先执⾏⼀遍i=i+1。
6int a = ++i;//先运⾏i=i+1,再给b赋值。
7int b = i++;8//i=i+1;上⾯⼀⾏的++i,就相当于在执⾏给b赋值之后,再执⾏⼀遍i=i+1。
9 System.out.println(a);10 System.out.println("现在i为"+i); //这⾥i=3,因为上⾯有个++i11 System.out.println("=====================");1213//前缀⾃增⾃减,先进⾏⾃增⾃减,再进⾏表达式14int b1=2*++i; //2*(i+1)=815 System.out.println("现在i为"+i); //这⾥i=4,因为上⾯有两个++i16int c1=2*--i; //2*(i-1)=617 System.out.println("现在i为"+i); //这⾥i=3,因为上⾯有个--i1819//后缀⾃增⾃减,先进⾏表达式,在进⾏⾃增⾃减。
Java基础篇—运算符Java运算符按功能可分为:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和条件运算符。
算数运算符算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),完成整数型和浮点型数据的算术运算。
许多语言中的取模运算只能用于整数型,Java对此做了扩展,它允许对浮点数进行取模操作。
例如,3%2的结果是1,15.2%5的结果是0.2。
取模操作还可以用于负数,结果的符号与第一个操作数的符号相同,例如,5%-3的结果是2,-5%3的结果是-2。
此外,算术运算符还有“++”和“--”两种,分别称为加1和减1运算符。
这两种运算符有前缀形式和后缀形式,含有有所不同。
例如,i++和++i的执行顺序是不一样的,i++在i 使用之后再+1,++i在i使用之前先+1。
i--和--i的情况于此类似。
关系运算符关系运算符用来比较两个值,包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6种。
关系运算符都是二元运算符,也就是每个运算符都带有两个操作数,运算的结果是一个逻辑值。
Java允许“==”和“!=”两种运算符用于任何数据类型。
例如,既可以判断两个数的值是否相等,也可以判断对象或数组的实例是否相等。
判断实例时比较的是两个对象在内存中的引用地址是否相等。
逻辑运算符逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。
前两个是二元运算符,后一个是一元运算符。
Java对逻辑与和逻辑或提供“短路”功能,也就是在进行运算时,先计算运算符左侧的表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。
位运算符位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)和无符号右移(>>>)。
Java中的运算符和各种运算符的优先级和结合性及注意事项整理(1)算术运算符Java运算符算术运算符代数表达式Java表达式加+a+1a+1减-a-b a-b乘*ab a*b除/a/b a/b求模/余% a mod b a%b注意:1>Java 中没有求幂的算术运算符2>Java 中没有表⽰指数运算的运算符(2)等式和关系运算符代数等式和关系运算符Java等式或关系运算符Java条件表达式⽰例Java条件表达式含义等式运算符===a==b a等于b≠!=a!=b a不等于b关系运算符>>a>b a⼤于b<<a<b a⼩于b≥>=a>=b a⼤于等于b≤<=a<=b a⼩于等于b注意:1>不能将相等运算符“==”与赋值运算符“=”混为⼀谈,会导致逻辑错误或者语法错误。
2>由两个符号组成的运算符中,两个符号之间不能出现空格,否则,将会产⽣语法错误。
(3)复合赋值运算符Java中提供了⼏个复合赋值运算符,⽤以简化赋值运算表达式。
任何⼀种类似于下⾯形式的表达式:变量 = 变量运算符表达式;其中,运算符可以是⼆元运算符+,-,*,/和%以及其它运算符中的某⼀个,都可以转换成下⾯这种形式:变量运算符 = 表达式;例,下⾯为算术赋值运算符赋值运算符⽰例表达式说明赋值操作+= c = 3,c += 7 c = c + 7将10赋给c-= d = 5,d -= 4 d = d - 4将1赋给d*= e = 4,e *= 5 e = e * 5将20赋给e/= f = 6,f /= 3 f = f / 3将2赋给f%=g = 12,g %= 9g = g % 9将3赋给g(4)⾃增和⾃减运算符Java提供了两个⼀元运算符⼀元⾃增运算符“++”和⼀元⾃减运算符“--”,⽤于在⼀个数字变量上加1和减1。
⾃增(或⾃减)运算符放在变量的前⾯,相应的称之为前⾃增(或前⾃减)运算符。
1.算术运算符Java的算术运算符分为一元运算符和二元运算符。
一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。
算术运算符的操作数必须是数值类型。
(1)一元运算符:一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。
加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。
加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。
例如:int i=6,j,k,m,n;j = +i; //取原值,即j=6k = -i; //取负值,即k=-6m = i++; //先m=i,再i=i+1,即m=6,i=7m = ++i; //先i=i+1,再m=i,即i=7,m=7n = j--; //先n=j,再j=j-1,即n=6,j=5n = --j; //先j=j-1,再n=j,即j=5,n=5在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。
(2)二元运算符二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。
其中+、-、*、/完成加、减、乘、除四则运算,%是求两个操作数相除后的余数。
动力节点%求余操作举例:a %b = a - (a / b) * b取余运算符既可用于两个操作数都是整数的情况,也可用于两个操作数都是浮点数(或一个操作数是浮点数)的情况。
当两个操作数都是浮点数时,例如7.6 % 2.9时,计算结果为:7.6 - 2 * 2.9 = 1.8。
当两个操作数都是int类型数时,a%b的计算公式为:a %b = a -(int)(a / b) * b当两个操作数都是long类型(或其他整数类型)数时,a%b的计算公式可以类推。
当参加二元运算的两个操作数的数据类型不同时,所得结果的数据类型与精度较高(或位数更长)的那种数据类型一致。
例如:7 / 3 //整除,运算结果为27.0 / 3 //除法,运算结果为2.33333,即结果与精度较高的类型一致7 % 3 //取余,运算结果为17.0 % 3 //取余,运算结果为1.0-7 % 3 //取余,运算结果为-1,即运算结果的符号与左操作数相同7 % -3 //取余,运算结果为1,即运算结果的符号与左操作数相同2.关系运算符关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。
关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。
例如:动力节点9 <= 8 //运算结果为false9.9 >= 8.8 //运算结果为true'A' < 'a' //运算结果为true,因字符'A'的Unicode编码值小于字符'a'的要说明的是,对于大于等于(或小于等于)关系运算符来说,只有大于和等于两种关系运算都不成立时其结果值才为false,只要有一种(大于或等于)关系运算成立其结果值即为true。
例如,对于9 <= 8,9既不小于8也不等于8,所以9 <= 8 的运算结果为false。
对于9 >= 9,因9等于9,所以9 >= 9的运算结果为true。
3.逻辑运算符逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。
逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
真值表是表示逻辑运算功能的一种直观方法,其具体方法是把逻辑运算的所有可能值用表格形式全部罗列出来。
Java语言逻辑运算符的真值表如下:逻辑运算符的真值表A B A&&B A||B !A A^B A&B A|Bfalse false false false true false false falsetrue false false true false true false truefalse true false true true true false truetrue true true true false false true true前两列是参与逻辑运算的两个逻辑变量,共有4种可能,所以表2.5共有4行。
后6列分别是6个逻辑运算符在逻辑变量A和逻辑变量B取不同数值时的运算结果值。
要说明的是,两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。
其区别是:&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。
所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。
对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。
所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于 || 运算来说,只要运动力节点算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。
所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。
例如,有如下逻辑表达式:(i>=1) && (i<=100)此时,若i等于0,则系统判断出i>=1的计算结果为false后,系统马上得出该逻辑表达式的最终计算结果为false,因此,系统不继续判断i<=100的值。
短路计算功能可以提高程序的运行速度。
作者建议读者:在程序设计时使用&&和||运算符,不使用&和|运算符。
用逻辑与(&&)、逻辑或(||)和逻辑非(!)可以组合出各种可能的逻辑表达式。
逻辑表达式主要用在 if、while等语句的条件组合上。
例如:int i = 1;while(i>=1) && (i<=100) i++; //循环过程上述程序段的循环过程将i++语句循环执行100次。
4.位运算符位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。
位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。
位运算示例动力节点运算符名称示例说明& 位与 x&y 把x和y按位求与| 位或 x|y 把x和y按位求或~ 位非 ~x 把x按位求非^ 位异或 x^y 把x和y按位求异或>> 右移 x>>y 把x的各位右移y位<< 左移 x<<y 把x的各位左移y位>>> 右移 x>>>y 把x的各位右移y位,左边填0举例说明:(1)有如下程序段:int x = 64; //x等于二进制数的01000000int y = 70; //y等于二进制数的01000110int z = x&y //z等于二进制数的01000000即运算结果为z等于二进制数01000000。
位或、位非、位异或的运算方法类同。
(2)右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。
这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。
例如,对于如下程序段:int x = 70; //x等于二进制数的01000110int y = 2;int z = x>>y //z等于二进制数的00010001即运算结果为z等于二进制数00010001,即z等于十进制数17。
对于如下程序段:动力节点int x = -70; //x等于二进制数的11000110int y = 2;int z = x>>y //z等于二进制数的11101110即运算结果为z等于二进制数11101110,即z等于十进制数-18。
要透彻理解右移和左移操作,读者需要掌握整数机器数的补码表示法。
(3)0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。
5.其他运算符(1)赋值运算符与其他运算符的简捷使用方式赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。
赋值运算符与其他运算符的简捷使用方式运算符用法等价于说明+= s+=i s=s+i s,i是数值型-= s-=i s=s-i s,i是数值型*= s*=i s=s*i s,i是数值型/= s/=i s=s/i s,i是数值型%= s%=i s=s%i s,i是数值型&= a&=b a=a&b a,b是逻辑型或整型|= a|=b a=a|b a,b是逻辑型或整型^= A^=b a=a^b a,b是逻辑型或整型<<= s<<=i s=s<<i s,i是整型动力节点>>= s>>=i s=s>>i s,i是整型>>>= s>>>=i s=s>>>i s,i是整型(2)方括号[]和圆括号()运算符方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。
圆括号()运算符用于改变表达式中运算符的优先级。
(3)字符串加(+)运算符当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。
如对于如下程序段:int max = 100;System.out.println("max = "+max);计算机屏幕的输出结果为:max = 100,即此时是把变量max中的整数值100转换成字符串100输出的。