posted 12 years ago
Hi,
I have a very basic question:
Exclusive or means that if the two operand bits are different the result is 1; otherwise the result is 0
I read in a book that 2^5 evaluates to 7. How is that possible ?
I have a very basic question:
Exclusive or means that if the two operand bits are different the result is 1; otherwise the result is 0
I read in a book that 2^5 evaluates to 7. How is that possible ?
SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCBCD 5
Visit my blog
posted 12 years ago
I still dont get it: shouldn't the result be 1 or 0 ?
Why are we adding the 2 operands here ?
[ September 22, 2005: Message edited by: Max longbeach ]
Why are we adding the 2 operands here ?
[ September 22, 2005: Message edited by: Max longbeach ]
SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCBCD 5
Visit my blog
posted 12 years ago
The operands 2 and 5 are not being added, although addition in this case produces the same result, which may be confusing you. The operands are the individual bits that represent each number in binary notation, not decimal notation.
Here's another example 2^3=1.
The ^ XOR operator works at the bit level, so convert the decimal numbers to binary:
2 = 0010
3 = 0011
^ = 0001
Here's another example 2^3=1.
The ^ XOR operator works at the bit level, so convert the decimal numbers to binary:
2 = 0010
3 = 0011
^ = 0001
SCJP, SCWCD
posted 12 years ago
You are thinking of a singlebit, exclusiveor operation:
0 EXOR 0 is 0
0 EXOR 1 is 1
1 EXOR 0 is 1
1 EXOR 1 is 0
But the Java ^ operation on integral types is a bitwise operation.
The operation defined above is applied to all the bits of the ^ operands,
in parallel, as the previous poster demonstrated.
Also note than ^ is defined for booleans, and does want you wish: the
result is true iff the operand have different boolean values:
false ^ false is false
false ^ true is true
true ^ false is true
true ^ true is false
But then again, you get the same result with boolean's == operation.
0 EXOR 0 is 0
0 EXOR 1 is 1
1 EXOR 0 is 1
1 EXOR 1 is 0
But the Java ^ operation on integral types is a bitwise operation.
The operation defined above is applied to all the bits of the ^ operands,
in parallel, as the previous poster demonstrated.
Also note than ^ is defined for booleans, and does want you wish: the
result is true iff the operand have different boolean values:
false ^ false is false
false ^ true is true
true ^ false is true
true ^ true is false
But then again, you get the same result with boolean's == operation.
There is no emoticon for what I am feeling!
God is a comedian playing for an audience that is afraid to laugh  Voltair. tiny ad:
The WEB SERVICES and JAXRS Course
https://coderanch.com/t/690789/WEBSERVICESJAXRS
