像Java和C#这样的语言具有按位和逻辑运算符。
逻辑运算符仅与布尔操作数有意义,而按位运算符也可以使用整数类型。由于C没有布尔类型并将所有非零整数视为true,因此在这里存在逻辑和按位运算符是有意义的。然而,像Java或C#这样的语言具有布尔类型,因此编译器可以根据类型上下文自动使用正确的运算符。
那么,在这些语言中同时拥有逻辑和按位运算符是否有一些具体原因?还是仅出于熟悉性的考虑而包含它们?
(我知道您可以在Java和C#中的布尔上下文中使用“按位”运算符来规避短路行为,但我从未需要过这种行为,因此我认为它可能是一个基本上不被使用的特殊情况)