各种运算符

博客介绍了信息技术领域中的多种运算符,包括算术运算符、关系运算符、逻辑运算符、成员运算符和按位运算符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算术运算符

# = 就是赋值运算符
a = 100
b = 3



# 算术运算符
# +    加
a = 100
b = 3
print(a + b)



# -    减
a = 100
b = 3
print(a - b)



# *    乘
a = 100
b = 3
print(a * b)



# /    除
a = 100
b = 3
print(a / b)



# 同时得到商和余数

print(divmod(10, 3))
a1 , b1 = divmod(10 , 3)
print(a1, b1)
print('***')


# //  取整
a = 100
b = 3
print(a // b)



# %   求余
a = 100
b = 3
print(a % b)



# **  求幂
a = 100
b = 3
print(a ** b)
c = pow(a, b)
print(c)



# 复合运算符
# +=
a = 100
b = 3
a += b # a = a + b
print(a)



# -=
a = 100
b = 3
a -= b
a = a - b
print(a)

# *=
a = 100
b = 3
a *= b
print(a)



# /=
a = 100
b = 3
a /= b
print(a)



# //=
a = 100
b = 3
a //= b
print(a)



# %=
a = 100
b = 3
a %= b
print(a)



# **=
a = 100
b = 3
a **= b
print(a)


关系运算符

# > 大于
a = 5
b = 3
print(a > b)


# >= 大于等于
a = 3
b = 5
print(b >= a)


# < 小于
a = 3
b = 5
print(b > a)




# <= 小于等于
a = 3
b = 5
print(b <= a)


# == 等于
a = 3
b = 5
print(b == a)



# != 不等于
a = 3
b = 5
print(b != a)




逻辑运算符

# 与 and 两边的表达式都为真,结果才为真。有一个假就为假。
a = 3
b = 5
c = 4
print(a < b and c < a)



# 或 or 两边的表达式有一个为真,结果就为真。
# 判断2008年是否是闰年
a = 2008
print((a % 4 == 0 and a % 100 != 0) or a % 400 == 400)


# 非 not 用于取反表达式的结果,真变假,假变真。
# 判断2008年是否不是是闰年
a = 2008
print(not((a % 4 == 0 and a % 100 != 0) or a % 400 == 400))

成员运算符

# in 判断一个值是否是另一个值的对象
list1 = [1, 2, 3, 4, 5, 6, 7]
print(9 in list1)



# not in 判断一个值是否不是另一个值的对象
list1 = [1, 2, 3, 4, 5, 6, 7]
print(9 not in list1)


d = {'name': 'dahua'}
# 对于字典,判断的是键
print('name' in d)

按位运算符

# & 按位于,对应的数据位都为1,结果的数据位才为1,否则为0
a = 0b00001010
b = 0b01010110
#   0b00000010
print('0b{:b}'.format(a & b))


# | 按位或,对应的数据位一个为1,结果的数据位就为1,否则为0
a = 0b00001010
b = 0b01010110
#   0b01011110
print('0b{:b}'.format(a | b))


# ^ 按位异或,对应的数据位不同,结果的数据位才为1,相同则为0
a = 0b00001010
b = 0b01010110
#   0b01011100
print('0b{:b}'.format(a ^ b))


# ~ 按位取反,符号位0变1, 1变0。结果加1
0b00000010#--- 2
0b10000011#--- -3

print('0b{:d}'.format(~2))


'''
<< 左移动运算符
各二进制位全部左移动若干位,由 << 右侧数字决定,高位丢弃,低位补0, 符号位不变
00000101 - -- 5
00010100 - -- 20

10000101 - -- -5
10010100 - -- -20
'''

print(5 << 2)

# >>按位右移
'''
各二进制位全部左移动若干位,由 >> 右侧数字决定,低位丢弃,高位补(正数补0 负数补1.).符号位不变
0000 0101 --- 5
0000 0001 --- 1

1000 0101 --- -5


1000 0101 --- 原码 -5   负数先求反码,再移位。
1111 1011 --- 补码
1111 1110 --- 补码右移两位,高位补1
1000 0001 --- 符号位不变,其余位取反,
1000 0010 --- 加1 -2
'''

print(5 >> 2)


<think>好的,我现在需要回答用户关于Java运算符的问题。首先,用户明确要求列出Java运算符的列表并详细解释,还希望了解它们的用法。根据用户提供的引用内容,我需要结合这些信息来构建一个结构清晰的回答。 首先,我需要回顾系统级指令,确保格式正确。例如,行内数学表达式要用$...$,独立公式用$$...$$,并且正确使用引用标识。不过在这个问题中,可能数学表达式不多,但要注意代码块的使用。用户提供的引用有三个,分别涉及运算符的分类、优先级和一些常见错误,比如连续使用关系运算符的问题。 接下来,我需要整理Java运算符的分类。根据引用[2],Java运算符分为算术、关系、逻辑、位、移位、条件、赋值等。引用[1]详细列出了优先级顺序,这需要整合到分类中,可能作为单独的一部分说明优先级。引用[3]提到不能连续使用关系运算符,比如3<5<6会报错,这一点在解释关系运算符时需要强调。 然后,每个分类的运算符需要详细说明,包括符号、用法和示例。例如,算术运算符包括加减乘除等,关系运算符如<、>等,逻辑运算符如&&、||,需要注意短路行为。位运算符和移位运算符可能需要更详细的解释,尤其是对于新手来说。条件运算符(三元运算符)也是重点,需要举例说明。 在优先级部分,引用[1]给出了从高到低的顺序,但需要以更易读的方式呈现,比如分点列出,并指出常见的优先级问题,比如乘除先于加减,逻辑与优先级高于逻辑或等。同时,结合引用[3]提到的连续关系运算符的错误,可以在这里提醒读者注意运算符的优先级和结合顺序,避免此类错误。 另外,注意事项部分可以包括运算符的优先级陷阱、类型转换问题(比如整数除法)、短路逻辑运算符的优势,以及避免连续关系运算符的使用。这些点能帮助用户避免常见错误,提升代码质量。 最后,生成相关问题需要考虑用户可能的后续疑问,比如运算符优先级记忆方法、不同类型运算符的区别、常见错误及解决方法,以及实际应用中的使用场景。这些问题应覆盖用户可能想深入了解的方面。 现在需要确保回答结构清晰,分点明确,每个部分有示例代码或说明,并且正确引用提供的资料。例如,在关系运算符部分,引用[3]的例子必须提到,并在末尾添加引用标识。同时,检查是否有遗漏的运算符类型,确保覆盖所有用户提到的分类,可能还需要补充赋值运算符和instanceof运算符等细节。 在代码示例方面,要使用正确的Java语法,比如在逻辑运算符部分展示短路特性,用条件运算符的例子说明语法。同时,确保代码格式正确,使用反引号包裹代码块,并标明语言类型。 最后,通读整个回答,确保符合系统指令中的格式要求,没有使用任何Markdown,行内表达式正确,引用标识正确放置,并且语言流畅,结构合理。</think>### Java运算符分类及详解 #### 一、运算符分类及用法 1. **算术运算符** - `+`(加法)、`-`(减法)、`*`(乘法)、`/`(除法)、`%`(取模) - 示例: ```java int a = 10 + 5; // 15 double b = 10.0 / 3; // 3.333... int c = 10 % 3; // 1 ``` - 注意:整数除法会截断小数部分,如 `5 / 2 = 2`。 2. **关系运算符** - `>`(大于)、`<`(小于)、`>=`(大于等于)、`<=`(小于等于)、`==`(等于)、`!=`(不等于) - 返回布尔值 `true`/`false`,常用于条件判断: ```java boolean flag = (5 > 3); // true ``` - **禁止连续使用**:`3 < 5 < 6` 会导致编译错误,需拆分为 `(3 < 5) && (5 < 6)`[^3]。 3. **逻辑运算符** - `&&`(逻辑与)、`||`(逻辑或)、`!`(逻辑非) - 短路特性:若左操作数已确定结果,则右操作数不执行。 ```java boolean result = (false && (x > 0)); // 右侧不执行 ``` 4. **位运算符** - `&`(按位与)、`|`(按位或)、`^`(按位异或)、`~`(按位取反) - 示例: ```java int a = 5 & 3; // 0101 & 0011 = 0001 → 1 ``` 5. **移位运算符** - `<<`(左移)、`>>`(带符号右移)、`>>>`(无符号右移) - 示例: ```java int b = 8 >> 1; // 1000 → 0100 → 4 ``` 6. **条件运算符(三元运算符)** - `条件 ? 表达式1 : 表达式2` - 示例: ```java int max = (a > b) ? a : b; ``` 7. **赋值运算符** - `=`(赋值)、`+=`(加并赋值)、`-=`(减并赋值)等复合形式 - 示例: ```java a += 5; // 等价于 a = a + 5 ``` 8. **其他运算符** - `instanceof`(类型检查): ```java boolean isString = "Hello" instanceof String; // true ``` --- #### 二、运算符优先级(从高到低) 1. **后缀运算符**:`x++`、`x--` 2. **一元运算符**:`+`、`-`、`!`、`~`、`++x`、`--x` 3. **乘性运算符**:`*`、`/`、`%` 4. **加性运算符**:`+`、`-` 5. **移位运算符**:`<<`、`>>`、`>>>` 6. **关系运算符**:`<`、`>`、`<=`、`>=` 7. **相等性判断**:`==`、`!=` 8. **逻辑与/异或/或**:`&`、`^`、`|` 9. **短路逻辑运算符**:`&&`、`||` 10. **三元运算符**:`? :` 11. **赋值运算符**:`=`、`+=`等[^1]。 --- #### 三、注意事项 1. **优先级陷阱**:乘除优先于加减,逻辑与(`&&`)优先于逻辑或(`||`)。 2. **类型转换**:整数除法可能丢失精度,需显式转换为浮点类型。 3. **短路特性**:合理利用 `&&`、`||` 提升效率。 4. **连续关系运算符**:需拆分为逻辑表达式,如 `(a < b) && (b < c)`[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值