GVKun编程网logo

Steven-Java-运算符(java%运算符)

22

对于Steven-Java-运算符感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解java%运算符,并且为您提供关于7大运算符:(算数运算符,比较运算符,赋值运算符,成员运算符,身份运算符,

对于Steven-Java-运算符感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解java%运算符,并且为您提供关于7大运算符:(算数运算符,比较运算符,赋值运算符,成员运算符,身份运算符,逻辑运算符,位运算符)与其优先级关系、Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)、Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_php技巧、Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_PHP教程的宝贵知识。

本文目录一览:

Steven-Java-运算符(java%运算符)

Steven-Java-运算符(java%运算符)

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三元运算符

运算符

运算

范例

结果

+

正号

+3

3

-

负号

b=4; -b

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模(取余)

7%5

2

++

++

自增(前):先运算后取值

自增(后):先取值后运算

a=2;b=++a;

a=2;b=a++;

a=3;b=3

a=3;b=2

- -

- -

自减(前):先运算后取值

自减(后):先取值后运算

a=2;b=- -a

a=2;b=a- -

a=1;b=1

a=1;b=2

+

字符串相加

“He”+”llo”

“Hello”

1、算数运算符的注意问题

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的结果是?

“+”除字符串相加功能外,还能把非字符串转换成字符串.例如:System.out.println("5+5="+5+5); //打印结果是?

2、赋值运算符

符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
支持连续赋值。

扩展赋值运算符: +=, -=, *=, /=, %=

3、比较运算符

运算符

运算                                 范例                                         结果

==

相等于                               4==3                                     false

!=

不等于                               4!=3                                      true

<

小于                                 4<3                                        false

>

大于                                 4>3                                        true

<=

小于等于                           4<=3                                      false

>=

大于等于                           4>=3                                      true

instanceof

检查是否是类的对象       “Hello”  instanceof  String               true

比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=” 。

 4、逻辑运算符

&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或

a

b

a&b

a&&b

a|b

a||b

!a

a^b

true

true

true

true

true

true

false

false

true

false

false

false

true

true

false

true

false

true

false

false

true

true

true

true

false

false

false

false

false

false

true

false

逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
理解:异或,追求的是“异”!

5、位运算符

位运算是直接对二进制进行运算

                       位运算符

运算符

运算

范例

<<

左移

3 << 2 = 12 --> 3*2*2=12

>>

右移

3 >> 1 = 1  --> 3/2=1

>>>

无符号右移

3 >>> 1 = 1 --> 3/2=1

&

与运算

6 & 3 = 2

|

或运算

6 | 3 = 7

^

异或运算

6 ^ 3 = 5

~

反码

~6 = -7

位运算符的细节

<<

空位补0,被移除的高位丢弃,空缺位补0。

>>

被移位的二进制最高位是0,右移后,空缺位补0;

最高位是1,空缺位补1。

>>>

被移位二进制最高位无论是0或者是1,空缺位都用0补。

&

二进制位进行&运算,只有1&1时结果是1,否则是0;

|

二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;

^

相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0

不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1

~

正数取反,各二进制码按补码各位取反

负数取反,各二进制码按补码各位取反

6、三元运算符

格式:
(条件表达式)?表达式1:表达式2;

为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;

表达式1和表达式2为同种类型
三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句
2)三元运算符要求必须返回一个结果。
3)if后的代码块可有多个语句

 

7大运算符:(算数运算符,比较运算符,赋值运算符,成员运算符,身份运算符,逻辑运算符,位运算符)与其优先级关系

7大运算符:(算数运算符,比较运算符,赋值运算符,成员运算符,身份运算符,逻辑运算符,位运算符)与其优先级关系

一,运算符(7种算数运算符,比较运算符,赋值运算符,成员运算符,身份运算符,逻辑运算符,位运算符)
优先级:

(1) 个别运算符:
    优先级最高 ** 幂运算
    优先级最低 =  赋值运算符
    () 括号可以提升运算优先级
     
(2) 整体 一元运算符 > 二元运算符
    一元运算符: 同一时间,只操作一个值 - ~
    二元运算符: 同一时间,操作两个值 + - * / ...
     
(3) 同一层级
    逻辑: () > not > and > or
    算数: 乘除 > 加减
    位运算符: ( << >> ) > & > ^ > |
 
(4) 其他运算符
    算数运算符 > 位运算符 > 比较运算符 > 身份运算符> 成员运算符 > 逻辑运算符
    赋值运算符是最后算完进行赋值,做收尾工作的.
"""
res = 5+5 << 6//3 is 40 and True
print(res)
 
"""
res = 10 << 2 is 40 and True
res = 40 is 40 and True
res = True and True
res = True
"""
# 加上括号包起来,让别人能看懂代码;
res = (5+5) << (6//3) is 40 and True

(1)算术运算符 + - * / // % **

var2 = 4
# + 
res = var1 + var2
print(res)
 
# -
res = var1 - var2
print(res)
 
# *
res = var1 * var2
print(res)
 
# / 除法 (结果为小数)
res = var1 / var2
res = 10 / 5
print(res)
 
 
# // 地板除 (返回整数)
res = 10 // 5
res = 11 // 4
print(res)
 
# 如果被除数或者除数是一个小数,结果加上.0
res = 11.0 // 4
print(res)
 
# % 取余
res = 11 % 4
res = -11 % 4  # -3 + 4 = 1
res = 11 % -4  # 3 + (-4) = -1
res = -11 % -4 # -3(如果被除数和除数都是负数,在正常得到的结果前面填上负号即可.)
print(res)
 
res = -17 % 7 # -3 + 7 = 4
res = 17 % -7 # 3 + (-7) = -4
res = -17 % -7 #-3
print(res)
 
# ** 幂运算
res = 3 ** 2
res = 3 ** 4
print(res)

(2)比较运算符> < >= <= == !=
比较运算符只会差生两种结果: True 真的 ,False 假的

var1 = 100
var2 = 100
 
res = var1 > var2
res = var1 < var2
res = var1 >= var2
res = var1 <= var2
print(res)
 
 
# 注意点
res = var1 == var2
print(res)

(3)赋值运算符

=  +=   -=  *=   /=   //=  %=    **=
# = 从右向左,将右侧的值赋值给左侧变量
var1 = 9
var2 = 2
 
 
# += 
"""var1 = var1 + var2"""
# var1 += var2
# print(var1)
 
# -=
"""var1 = var1 - var2"""
# var1 -= var2
# print(var1)
 
# *=
"""var1 = var1 * var2"""
# var1 *= var2
# print(var1)
 
# /=
"""var1 = var1 / var2"""
# var1 /= var2
# print(var1)
 
# //=
"""var1 = var1 // var2"""
# var1 //= var2
# print(var1)
 
# %= 
"""var1 = var1 % var2"""
# var1 %= var2
# print(var1)
 
# **=
"""var1 = var1 ** var2"""
var1 **= var2
print(var1)
 

(4)成员运算符:in 和 not in (针对于容器类型数据)

strvar = "雷霆嘎巴,无情哈拉少"
res = "雷" in strvar
res = "文" not in strvar
res = "无情" in strvar
res = "霆哈少" in strvar
res = '','' not in strvar
print(res)
 
 
# list tuple set
lst = ["余锐","高学峰","治理追","温子月","草神光"]
res = "高学峰" in lst
print(res)
 
tup = ("余锐","高学峰","治理追","温子月","草神光")
res = "李博伦" not in tup
print(res)
 
setvar = {"金角大王","银角大王","神秘男孩"}
res = "神秘男孩" in setvar
print(res)
 
# dict
""" in  和 not in 在字典中只判断键,不判断值 """
dic = {"yr":"英俊帅气","bx":"抠脚大汉","mcp":"高大威猛"}
 
res = "英俊帅气" in dic # False
res = "yr" in dic
res = "mcp" not in dic
print(res) 

(5)身份运算符: is和 is not(检测两个数据在内存当中是否是同一个值)

""" 字符串必须是一个连续的片段 """
strvar = "雷霆嘎巴,无情哈拉少"
res = "雷" in strvar
res = "文" not in strvar
res = "无情" in strvar
res = "霆哈少" in strvar
res = '','' not in strvar
print(res)
 
 
# list tuple set
lst = ["余锐","高学峰","治理追","温子月","草神光"]
res = "高学峰" in lst
print(res)
 
tup = ("余锐","高学峰","治理追","温子月","草神光")
res = "李博伦" not in tup
print(res)
 
setvar = {"金角大王","银角大王","神秘男孩"}
res = "神秘男孩" in setvar
print(res)
 
# dict
""" in  和 not in 在字典中只判断键,不判断值 """
dic = {"yr":"英俊帅气","bx":"抠脚大汉","mcp":"高大威猛"}
 
res = "英俊帅气" in dic # False
res = "yr" in dic
res = "mcp" not in dic
print(res) 


(6)逻辑运算符: and or not

# and 逻辑与
"""全真则真,一假则假"""
res = True and True   # True
res = True and False  # False
res = False and True  # False
res = False and False # False
print(res)
 
# or  逻辑或
"""全假则假,一真则真"""
res = True or True   # True
res = True or False  # True
res = False or True  # True
res = False or False # False
print(res)
 
# not 逻辑非
"""真变假,假变真"""
res = not True
res = not False
print(res)
 
# 逻辑短路:  如果出现了短路效果,后面的代码不执行
"""
短路:
(1) True or 表达式
(2) False and 表达式
"""
"""
True or print("紫月真胖呀")
True or True  => True
True or False => True
 
False and print("紫月真猛呀")
False and False => False
False and True  => False
"""
 
"""
bool 类型为假的十种情况
0 0.0 0j False '''' [] () {} set() None
先用大脑算一下布尔值真假,是否出现短路情况
如果出现了直接返回当前值,没出现,继续向右执行;
"""
 
 
res = 5 or 6
res = 0 or 6
res = 0 and 9
print(res)
逻辑运算符的优先级
() > not > and > or
eg:
res = 5 or 6 and 7 # 5 or 7 => 5
res = (5 or 6) and 7 # 5 and 7 => 7
res = not(5 or 6) and 7 # not 5 and 7 => False and 7 =>False
print(res)
 
 
res = 1>2 or 3<4 and 5>10 or 11<12 and 13>15 or 100<1000 and 1<2
# res = False or True and False or True and False or True and True
# res = False or False or False or True
# res = False or False or True
# res = False or True
# res = True
print(res)

(7)位运算符 & | ^ << >> ~

# 按位与 &
var1 = 19
var2 = 15
print(var1 & var2)
"""
19的二进制
0000 ... 10011
15的二进制
0000 ... 01111
 
0000 ... 10011
0000 ... 01111
0000 ... 00011 => 3
"""
 
# 按位或 |
var1 = 19
var2 = 15
print(var1 | var2)
"""
19的二进制
0000 ... 10011
15的二进制
0000 ... 01111
 
0000 ... 10011
0000 ... 01111
0000 ... 11111 => 31
"""
 
# 按位异或 ^ 两个值不一样,返回真,否则返回假
"""
1 0 => 1
1 1 => 0
0 0 => 0
0 1 => 1
"""
var1 = 19
var2 = 15
print(var1 ^ var2)
"""
19的二进制
0000 ... 10011
15的二进制
0000 ... 01111
 
0000 ... 10011
0000 ... 01111
0000 ... 11100 => 28
"""
 
 
# << 左移
""" 左移相当于做乘法 : 5 * 2的n次幂 """
res = 5 << 1 # 10
res = 5 << 2 # 20
res = 5 << 3 # 40
print(res)
"""
0000 ...  101
0000 ... 1010  移动一位 10
0000    10100  移动二位 20
"""
 
# >> 右移
""" 右移相当于做除法 : 5 // 2的n次幂 """
res = 5 >> 1 # 2
res = 5 >> 2 # 1
res = 5 >> 3 # 0
print(res)
"""
0000 ...  101
0000 ...  010  移动一位 2
0000 ...  001  移动二位 1
0000 ...  000  移动三位 0
"""
 
 
# ~ 按位非 (针对于补码进行操作,按位取反,包括符号位)
"""公式: -(n+1)"""
var1 = ~19
print(var1)
"""
~ 按位非每一位都取反,包括符号位,求反码每一位除了符号位,都取反.
 
原码:0000 ... 10011
反码:0000 ... 10011
补码:0000 ... 10011
 
补码:     0000 ... 10011
按位非:   1111 ... 01100
 
给你补码求原码:
补码: 1111 ... 01100
反码: 1000 ... 10011
原码: 1000 ... 10100 => -20
"""
 
var1 = ~(-22)
print(var1)
"""
原码: 1000 ... 10011
反码: 1111 ... 01100
补码: 1111 ... 01101
 
补码:    1111 ... 01101
按位非:  0000 ... 10010
 
给你补码求原码:
正数 : 补码 = 反码 = 原码
 
原码:  0000 ... 10010 => 18
"""

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)

Erlang的比较运算符 opDescription==等于/=不等于=<小于等于<小于>=大于等于>大于=:=精确的等于=/=精确的不等于等于和精确等于的区别:
如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例: 1> 1==1.0.
true
2> 1=:=1.0.
false 所以一般推荐用精确等于去比较 比较运算符的大小级别: number < atom < reference < fun < port < pid < tuple < list < bit string 3> 1 > a. false opDescriptionArgument type+
number-
number+
number-
number*
number/浮点数除法,结果是浮点数numberbnot一元not运算符integerdiv整数除法,结果是整数integerrem求玉树integerbandand运算integerboror运算integerbxorxor异或运算integerbsl左移位操作integerbsr右移位操作integer
逻辑运算符 opDescriptionnot一元逻辑notand逻辑andor逻辑orxor逻辑xor原子true 和false表示逻辑的”真”和”假”
此外,逻辑运算符还包括一个orelse 和andalso 原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的。 短路运算举例 Express1 and Express2 Express1 andalso Express2 如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些 <div><adata="77817"id="copybut77817" onclick="doCopy('code77817')"> 代码如下:

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_php技巧

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_php技巧

Erlang的比较运算符

opDescription==等于/=不等于==大于等于>大于=:=精确的等于=/=精确的不等于等于和精确等于的区别:
如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:

1> 1==1.0.
true
2> 1=:=1.0.
false

所以一般推荐用精确等于去比较

比较运算符的大小级别:

number
3> 1 > a.

false

opDescriptionArgument type+
number-
number+
number-
number*
number/浮点数除法,结果是浮点数numberbnot一元not运算符integerdiv整数除法,结果是整数integerrem求玉树integerbandand运算integerboror运算integerbxorxor异或运算integerbsl左移位操作integerbsr右移位操作integer
逻辑运算符

opDescriptionnot一元逻辑notand逻辑andor逻辑orxor逻辑xor原子true 和false表示逻辑的”真”和”假”
此外,逻辑运算符还包括一个orelse 和andalso

原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的。

短路运算举例

Express1 and Express2

Express1 andalso Express2

如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些

复制代码 代码如下:

op Description
== 等于
/= 不等于
=>= 大于等于
> 大于
=:= 精确的等于
=/= 精确的不等于

Examples
复制代码 代码如下:

> 1==1.0.
true
> 1=:=1.0.
false
> 1 > a.
false

注: 一般语言的 小于等于 是"

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_PHP教程

Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_PHP教程

Erlang的比较运算符

opDescription==等于/=不等于==大于等于>大于=:=精确的等于=/=精确的不等于等于和精确等于的区别:
如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:

1> 1==1.0.
true
2> 1=:=1.0.
false

所以一般推荐用精确等于去比较

比较运算符的大小级别:

number
3> 1 > a.

false

opDescriptionArgument type+
number-
number+
number-
number*
number/浮点数除法,结果是浮点数numberbnot一元not运算符integerdiv整数除法,结果是整数integerrem求玉树integerbandand运算integerboror运算integerbxorxor异或运算integerbsl左移位操作integerbsr右移位操作integer
逻辑运算符

opDescriptionnot一元逻辑notand逻辑andor逻辑orxor逻辑xor原子true 和false表示逻辑的”真”和”假”
此外,逻辑运算符还包括一个orelse 和andalso

原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的。

短路运算举例

Express1 and Express2

Express1 andalso Express2

如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些

复制代码 代码如下:

op Description
== 等于
/= 不等于
=>= 大于等于
> 大于
=:= 精确的等于
=/= 精确的不等于

Examples
复制代码 代码如下:

> 1==1.0.
true
> 1=:=1.0.
false
> 1 > a.
false

注: 一般语言的 小于等于 是"

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/325803.htmlTechArticleErlang的比较运算符 opDescription==等于/=不等于=小于等于小于=大于等于大于=:=精确的等于=/=精确的不等于等于和精确等于的区别: 如果要比较...

今天关于Steven-Java-运算符java%运算符的分享就到这里,希望大家有所收获,若想了解更多关于7大运算符:(算数运算符,比较运算符,赋值运算符,成员运算符,身份运算符,逻辑运算符,位运算符)与其优先级关系、Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)、Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_php技巧、Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)_PHP教程等相关知识,可以在本站进行查询。

本文标签:

上一篇RandomAccessFile java

下一篇Java BigDecimal类常用方法(java中bigdecimal用法)