如何通过位运算符在java中处理布尔值
请考虑这个例子
int i=11,j=5; boolean b=true,c=false; System.out.println(b&c); // --> output=false System.out.println(i&j); // --> output=1 有点位置和运算符是如何处理布尔变量的? 解决方法
Java中的布尔值没有按位运算.
&安培;和|不要在Java中进行按位操作,而是logical operations (as specified in §15.22.2 of the JLS). >&是逻辑AND(当且仅当两个参数都为真时才会计算为真) 请注意,相同的运算符用于bitwise operations,但这些运算符只适用于两个操作数都是可转换为整数类型的类型(即byte,char,short,int,long及其各自的包装器). 由于这篇文章引发了一些激烈的讨论,我想我会澄清我对“按位”和“逻辑”操作之间差异的坚持. 第一个:是的,在某种程度上,这两个操作将完全相同,除了它们的输入大小(由于优化,它们甚至可能是相同的). 但是,这里至少有3个级别: > Java语言 The Java language specification将boolean定义为a primitive type with the two values The Java Virtual Machine Specification defines the 它还谈到转换
在JVM中满足此要求的最简单方法显然是让1为真,0为假,并让转换操作为无操作.这也是最可能的实现,但它不一定是唯一正确的实现. 这种情况变化很大,但大多数CPU都不支持布尔类型(为什么要这样做?)因此对boolean的操作将使用常规的按位运算. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |