Thursday 16 November 2017

Effect of a Bitwise Operator on a Boolean in Java

itemprop="text">

The bitwise operators are supposed to
travel variables and operate on them bit by bit. In the case of integers, longs, chars
this makes sense. These variables can contain the full range of values enforced by their
size.



In the case of booleans, however, a
boolean can contain only two values. 1 = true or 0 = false. But the size of the boolean
isn't defined. It can be as big as a byte or as small a bit.



So what's the effect of using a bitwise
operator on a boolean? Does the JVM essentially translate it to a normal logical
operator and move on? Does it treat the boolean as a single bit entity for the purpose
of the operation? Or is the result undefined along with the size of a
boolean?



Answer





The operators
&, ^, and
| are bitwise operators when the operands are primitive
integral types. They are logical operators when the operands are boolean, and their
behaviour in the latter case is specified. See the section 15.22.2 of the href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.22.2"
rel="nofollow noreferrer">Java Language Specification for
details.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...