算术运算符
运算符 | 说明 |
---|---|
+ | 对两个操作数做加法运算 |
- | 对两个操作数做减法运算 |
* | 对两个操作数做乘法运算 |
/ | 对两个操作数做除法运算 |
% | 对两个操作数做取余运算 |
tips:
- 当有字符串类型的值参与 + 运算符,代表的是连接,例如"123" + 456的结果为"123456"。
- 当使用 / 运算符时也要注意操作数的数据类型,如果两个操作数的数据类型都为整数,那么结果相当于取整运算,不包括余数;而两个操作数中如果有一个操作数的数据类型为浮点型,那么结果则是正常的除法运算。
- 当使用 % 运算符时,如果两个操作数都为整数,那么结果相当于取余数。经常使用该运算符来判断某个数是否能被其他的数整除。
逻辑运算符
逻辑运算符主要包括与、或、非等,它主要用于多个布尔型表达式之间的运算。
运算符 | 含义 | 说明 |
---|---|---|
&& | 逻辑与 | 如果运算符两边都为True,则整个表达式为True,否则为False;如果左边表达式为False,则不对右边表达式进行计算,短路运算,相当于"且"的含义 |
|| | 逻辑或 | 如果运算符两边有一个或两个为True,整个表达式为True,否则为False;如果左边为True,则不对右边表达式进行计算,相当于"或"的含义 |
! | 逻辑非 | 表示和原来的逻辑相反的逻辑 |
位运算
所谓位运算是将数值型的值转换成二进制后的运算,由于是对二进制数进行运算,所以使用位运算对操作数进行运算的速度稍快。
位运算包括与、或、非、左移、右移等,具体的表示符号如下表所示。
运算符 | 说明 |
---|---|
& | 按位与 两个位数都为1,则将结果位为1,否则为0;也可以对布尔型的值进行比较,相当于"与"运算,但不是短路运算 |
| | 按位或 两个位数都为0,则将结果位为0,否则为1;也可以对布尔型的值进行比较,相当于"或"运算,但不是短路运算。 |
~ | 按位非 当位数为1时,则结果位为0;当位数为0时,则结果位为1。该操作符不能用于布尔型。对正整数取反,则在原来的数上加1,然后取负数;对负整数取反,则是原来的数上加1,然后取绝对值。1 |
<< | 左移,将操作符左边的数向左移动操作符右边指定的位数,右边应移动空出的部分补0 |
>> | 有符号右移,把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值,左侧因移动空出的部分补 0;如果是负值,左侧因移动空出的部分补 1 |
三元表达式
布尔表达式?表达式1:表达式2
- 布尔表达式:判断条件,一个结果为布尔型值的表达式
- 表达式1:如果判断条件为True,该三元运算符结果就是表达式1的运算结果
- 表达式2:如果判断条件为False,该三元运算符结果就是表达式2的运算结果
需要注意,在三元运算符中表达式1和表达式2的结果的数据类型要兼容。
赋值运算符
与C语言相同
++和–运算符在操作数前后有区别,在操作数前先进行加减,然后操作数再与其他数做运算;在操作数后先进行运算,然后操作数自身再加1.
整数在内存中的存储都是以补码的形式存储,所以都要进行原反补的转换。正整数的原反补相同,负整数的反码是原码除符号位的按位取反,补码是反码加1。 ↩︎