学习都是一个脚踏实地的过程,对知识点也不是那种一知半解,也知道大家对于运算符有很多疑难,今天为大家讲解什么是运算符?Java运算符有哪些,其中逻辑运算符又有哪些?接下来一一解决。
运算符是什么?
在计算机运算中,运算符号! 表示布尔"非" :如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。在数学计算中,运算符号!表示阶乘:n!=1×2×3×...×n。一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1,自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在vb2005中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。
作用:
运算符是表示运算的符号,参与运算的数据称为操作数。
Java运算符有哪些,及其各自的作用?
布尔逻辑运算符:
1. 逻辑与&&、逻辑或||是二元运算符(短路运算)
2. 2.逻辑非!是一元运算符
位运算对二进制进行操作。
1.~按位取反,如:~11001010→00110101
2.&按位与,如:0&0=0,0&1=0,1&1=1
按位与可以用来屏蔽特定的位,对特定的位清零。 int theFourthBit=i&8; (8=00001000),在变量i的二进制中除了右边第四位没有变化以外,其余位全部被清零。
也可以用来取某个数中某些指定的位,如:取整数变量i的第五位,可以这样表示int theFifthBit=i&16 (16=00010000)。
3.|按位或,如:0|0=0,0|1=1,1|1=1
按位或和可以将某些位变为1,如:将整型变量i的第四位和第五位换成1,可以用语句(int setFourthAndFifthBit=i | 24; 来实现(24=00011000)
4.^按位异或,如:0^0=0,0^1=0,1^0=1,1^1=0
可以实现两个数的交换,而不使用临时变量,如:交换两个整数a ,b的值,可以用下列语句实现:
int a=15,b=24;//(15=00001111,24=00011000) a=a^b;//a=23(00010111) b=b^a;//b=15 a=a^b;//a=24
5.移位运算符(<<、>>、>>>)
这里要先了解补码的概念:Java使用补码来表示二进制数,在补码表中,最高位是符号位,正数用0表示,负数用1表示。
注意:如何得到一个负数的补码?这里我用-1来举例:把负数-1绝对值的补码(|-1|的补码及1的补码(00000001))按位取反(得到11111110),然后对整个数加1,就得到-1的补码11111111了。
>>算术右移,如:a=11001101,则a>>2=11110011 (移到右端的低位被舍去,最高位的值移入的还是原来高位的那个值)
右移一位相当于除以2取商,而且用右移实现除法比除法速度要快。
<<算数左移,如:a=00001111,则a<<2=00111100(右边补0)高位左移后溢出,舍弃不起作用。
在不产生溢出的情况下,左移1位相当于承2,左移实现乘法比乘法运算速度要快。
>>>逻辑右移(无符号右移)如:a=11010011,则b>>>2=00110100
算数运算符:
1. 一元运算符只有一个操作数(+、-、++、--四种)
2. 2.二元运算符有2个操作数(+、-、*、/(除)、%(求余)五种)
关系运算符:
有两个操作,数关系运算符(>、<、>=、<=、==、!=)是布尔类型,表达式的结果为true或false
赋值运算符:
=复制运算涉及到类型的转换,如:
byte b=12; int i=b;//byte自动转换为int类型 int a=22; byte b=(byte) a;//int强制转换为byte类型
条件运算符:
三元运算符? : 如:p1>p2?a:b; 若p1>p2成立,结果取a,不成立就取b。
好了,以上是今天所讲解的Java逻辑运算符,给大家也进一步拓展了内容,是否对今天的解答满意呢?满意请继续关注本网站哦!