This week's giveaway is in the Spring forum.We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!See this thread for details.
Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login Win a copy of REST with Spring (video course) this week in the Spring forum!

# Unary operator evaluation

Sherry Jacob
Ranch Hand

Joined: Jun 29, 2005
Posts: 128
Hi every1
Can any1 tell me how are these statements evaluated ?

They are unary operators. So how is the calculation being done ?

<strong><br />Cheers !!<br /> <br />Sherry<br /></strong><br />[SCJP 1.4]
Steve Morrow
Ranch Hand

Joined: May 22, 2003
Posts: 657

It may help to understand that those are not unary operators; they're binary (left and right operands). They are evaluated left-to-right in order of precedence (accounting for parentheses, of course).
Steve Morrow
Ranch Hand

Joined: May 22, 2003
Posts: 657

P.S. The unary operators are +, -, ++, --, ~, !, and cast operators.

Examples:

Sherry Jacob
Ranch Hand

Joined: Jun 29, 2005
Posts: 128
I'm sorry I mentioned unary by mistake.

I meant Bitwise logical operators.

Thanks for pointing that out.

So how is it evaluated anyway ?
santhoshkumar samala
Ranch Hand

Joined: Nov 12, 2003
Posts: 156

The code is evaluated is as follows:

The numbers converted into the binary format and the opertaors on the binary format.

int a = 1 | 2 ^ 3 & 5;
The operation will be like this 001|010^011&101

The precedence is like this &,^,|

so the steps to the result are

1)001|010^001
2)001|011
3)011

The result is 3

santhosh<br />SCJP,SCWCD
Ranch Hand

Joined: Aug 16, 2005
Posts: 69
The results are:

a=3
b=0
c=3

The order of operations for a has already been explained by santoshkumar, and as he said, it's equivalent to the forced order that you imposed for c.

I agree. Here's the link: http://aspose.com/file-tools

subject: Unary operator evaluation