JAVA中的位运算符怎么在逻辑运算符中也出现了。
位运算&和|,怎么在逻辑运算符中也有,那编译器怎么判定当程序中出现了&或|时,到底是进行位运算还是逻辑运算。我这的一本JAVA书上写的是:&在表达式判定上和&&相同,唯一...
位运算&和|,怎么在逻辑运算符中也有,那编译器怎么判定当程序中出现了&或|时,到底是进行位运算还是逻辑运算。
我这的一本JAVA书上写的是:
&在表达式判定上和&&相同,唯一不同的是它总是计算两边表达式的值。
|在表达式判定上和||相同,唯一不同的是它总是计算两边表达式的值。 展开
我这的一本JAVA书上写的是:
&在表达式判定上和&&相同,唯一不同的是它总是计算两边表达式的值。
|在表达式判定上和||相同,唯一不同的是它总是计算两边表达式的值。 展开
3个回答
展开全部
先说如何区别:为运算符用来对操作数的二进制形式进行运算用的,而逻辑运算符是用来处理布尔类型的值的,也就是说编译器是根据运算符两边的运算数的类型来进行判断的,或者这样说编译器首先判断的不是运算符的类型而是先判断运算数是否能转换为一个相应的二进制数,因为位运算最终处理的是二进制数间的运算,而对于处理逻辑运算的操作来说,它也不是先判断运算符的类型,而是先判断两边的操作数是否是布尔类型的式子,也就是说是否可以判断真假。
再有的就是书上讲到的&与&&在两种运算符里的区别,首先要明确的是在位运算符只存在&这种运算符,而在逻辑运算里就跟你书上写到的他两种大体上都可以说是一样的(都是只有当两边都为真的时候才返回真),但不同的是它的处理流程,&它处理起来非简洁,而&&处理起来是简洁的,那一个例子来说:public class DC{
public static void main(String[] args){
int a=122,b=23;
System.out.println(a<1&b>2);
System.out.println(a<1&&b>2);
}
}
为什么说&是非简洁,因为他在处理的时候两边都会判断,即使明知前面是假的他仍会继续判断后面,最后才打印结果,而&&先判断前面,若前面是真的它就会继续判断后边的那个表达式的真假,若前面是假的话,无论后边的值是真是假它也不再判断,而是直接打印你出结果。
再有的就是书上讲到的&与&&在两种运算符里的区别,首先要明确的是在位运算符只存在&这种运算符,而在逻辑运算里就跟你书上写到的他两种大体上都可以说是一样的(都是只有当两边都为真的时候才返回真),但不同的是它的处理流程,&它处理起来非简洁,而&&处理起来是简洁的,那一个例子来说:public class DC{
public static void main(String[] args){
int a=122,b=23;
System.out.println(a<1&b>2);
System.out.println(a<1&&b>2);
}
}
为什么说&是非简洁,因为他在处理的时候两边都会判断,即使明知前面是假的他仍会继续判断后面,最后才打印结果,而&&先判断前面,若前面是真的它就会继续判断后边的那个表达式的真假,若前面是假的话,无论后边的值是真是假它也不再判断,而是直接打印你出结果。
展开全部
位是&和|
逻辑是&&和||
逻辑是&&和||
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是这样的,你的书没错啊
java中可不是说像C++一样可以给boolean值赋1、 0,只能是true false。
所以如果两边是数字就位算
两边是boolean就逻辑了
个人理解,不过我觉得肯定是这样的
java中可不是说像C++一样可以给boolean值赋1、 0,只能是true false。
所以如果两边是数字就位算
两边是boolean就逻辑了
个人理解,不过我觉得肯定是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询