Ask*_*aga 9 c# java bitwise-operators logical-operators
Java和C#等语言都有按位和逻辑运算符.
逻辑运算符只对布尔操作数有意义,按位运算符也适用于整数类型.由于C没有布尔类型并且将所有非零整数视为真,因此逻辑和按位运算符的存在在那里是有意义的.但是,Java或C#等语言具有布尔类型,因此编译器可以自动使用正确类型的运算符,具体取决于类型上下文.
那么,是否有一些具体的理由在这些语言中同时使用逻辑和按位运算符?或者他们是否因熟悉原因而被包括在内?
(我知道你可以在布尔上下文中使用"按位"运算符来规避Java和C#中的短路,但我从来没有需要这样的行为,所以我想这可能是一个大多未使用的特殊情况)
1)在这些语言中是否有一些具有逻辑和按位运算符的具体原因?
是:
2)我知道你可以在布尔上下文中使用"按位"运算符来规避Java和C#中的短路,
就C#而言,这根本不是真的.
C#有例如2个布尔AND运算符:( &完整)和&&(短)但它不允许对布尔值进行按位运算.
因此,逻辑和按位运算符之间确实没有"重叠"或冗余.这两个不适用于相同的类型.
我会说对于Java
| 归档时间: |
|
| 查看次数: |
10917 次 |
| 最近记录: |