位运算符逻辑运算符区别

    xiaoxiao2023-11-09  152

    位运算符与逻辑运算符区别

    位运算符包括1、&位与符 ;2、|位或符 ;3、^位异或符; 4、~位取反符。 逻辑运算符包括:1、&&逻辑与; 2、||逻辑或; 3、!逻辑非。

    可以看到,这两种运算符在外观上就有某些相似之处。而在实际使用中,我们应该了解两者的相同点与区别,正确的使用它们。

    位运算符 位运算是完全对位方面的操作。我们知道,整型数据在内存中以二进制的形式表示,左边最高位是符号位,最高位是0表示正数,若为1则表示负数;负数采用补码表示。这样就可以对整型数据进行按位运算。 1、按位与运算符为“&”,为双目运算符。按位与运算的运算法则是:如果两个整型数据a、b对应为都是1,则结果为才是1,否则为0。 2、按位或运算的运算符为“|”,为双目运算符。按位或运算的运算法则是:如果两个操作数对应高位都是0,则结果为才是0,否则为1。 3、按位异或”运算的运算符是“^”,为双目运算符。按位异或运算的运算法则是:当两个操作数的二进制表示相同(同为0或同为1)时,结果为0,否则为1。 4、按位取反运算也称为“按位非”运算,运算符为“~”,为单目运算符。“按位取反”就是将操作数二进制中的1修改为0,0修改为1。

    逻辑运算符 在日常生活的交流中,我们就经常用到与、或、非以及与他们类似的表达来阐述比较复杂的关系。逻辑运算符有如下运算顺序: 表达式1 && 表达式2 表达式1真:执行表达式2; 表达式1假:执行表达式1。 表达式1 || 表达式2 表达式1真:执行表达式1; 表达式1假:执行表达式2。

    两者区别 1、||当左边为真时,就不运行右边的表达式了 ;|当左边为真,还是会运算右边的表达式 。&&当左边为假时,就不会运算右边的表达式 ;&当左边为假时,还是会运算右边的表达式。由此我们可以看到逻辑运算符的“短路”情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行。

    短路的一个例子:

    int y=10; int x=10; if((x=0)==0||(y=0)==0) System.out.println(y);//短路,y=0没有运算;输出10

    2、逻辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。

    最新回复(0)