
学习笔记2:逻辑运算符、位运算符
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
逻辑操作符:与操作符、或操作符!在类Demo1的主方法中定义两个布尔型变量A和B。分别赋值为true和false。输出结果是否与预期一致:A 与 B 等于正的(A 与 B);A 或 B 等于正的(A 或 B);非A等于非A。
在程序设计过程中,逻辑运算符与位运算符作为处理布尔逻辑与二进制数据运算的关键工具,它们分别应用于执行布尔逻辑运算和位操作。本文旨在深入分析这些运算符的应用场景及其特性。主要包含与操作符(`&&`)、或操作符(`||`)和非操作符(`!`)。这些逻辑运算符具有短路特性,即在某些编程语言中应用广泛。例如,在表达式 `A && B` 中,当第一个操作数评估为假时,无论第二个操作数的值如何都不会被计算。类似地,在 `A || B` 表达式中,如果第一个操作数是真,则不会评估第二个操作数。逻辑非操作符的作用是将一个布尔值取反,例如将 true 转换为 false。在逻辑或操作中,其中一个实例表现为:```java
int A = 10;
boolean B = (A < 9) && (A++ < 20);
```由于$(A<9)$不成立,因此$A++<20$无法自增,从而避免了不必要的计算。涉及的运算符有按位与(符号为`&`)、按位或(符号是`|`)、按位异或(符号为`^`)、按位取反(符号是`~`)等基本操作;此外还有左移运算符(符号表示为`<<`)、右移运算符分为有符号右移和无符号右移两种类型,分别对应于符号“>>”和“>>>”。这些运算符均直接作用于参与运算的二进制数。在二进制运算中进行与操作时,仅当对应位均为1的情况下结果才会为1。具体而言,`0010 1101 & 0110 0111`会得到 `0010 0101`。
完成每一位的按位或操作后,只要任意一位为真就会返回一个置位的结果。例如,在运算 `0010 1101 | 0110 0111` 中我们能够获得结果 `0110 1111`。
在进行异或运算时,对应位不同时会设置结果为真,反之则保持不变。这可以通过计算 `0010 1101 ^ 0110 0111` 来实现,最终得到的结果是 `0100 1010`。
对每一位取反的操作会使二进制数值的每一位都发生反转,例如将 `0011 1010` 转换为 `1100 0101`。
在左移运算中,会将所有位向左移动指定的数量,并用零填充右端。这样来看的话,运算 `0000 1000 << 2` 的结果就是 `0010 0000`,这相当于数值32的表示。
对于右移操作而言,在处理正数时会补零至高位;而对于负数则会保留符号位并填充。例如,运算 `8 >> 2` 将得到 `0010` 或者说是数值2的表现形式。
在无符号右移的情况下,所有数字的高位都会被填零。这种操作对于处理非负整数非常有用,因为它总能保持数值的正性特征。
掌握这些运算符的基本特性对于编写出高效、简洁且易于维护的代码至关重要。特别适用于处理涉及二进制数据的计算任务时,使用这些运算符能够显著提升效率。通过操作其二进制表示来实现,它们可以有效降低可能产生的类型转换和条件判断开销。然而,在不当的应用场景下可能会导致逻辑错误或代码难以理解,因此在实际编程中需要谨慎选择并权衡特定场景下的计算复杂度和可读性。
全部评论 (0)


