Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Unary opearator...

 
banu saro
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What is the output of following code and could some one explain me how it is.
int x = 1;
int y = ~x + 1;
System.out.println(y);

How does ~x works?
 
Barry Gaunt
Ranch Hand
Posts: 7729
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Moving to Java In General (Beginner)...
 
Rishi Chopra
Ranch Hand
Posts: 108
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
int x=1;

this means:-- x=00000000 00000000 00000000 00000001 ( representing as 32 bit).

int y=~ x +1;

here ~x inverts all bits in x. so now x :-

~x =11111111 11111111 11111111 11111110 ;
y=~x+1 =11111111 11111111 11111111 11111111;

now this number has left most bit as one so the "y is negative" using 2-complement rule here..

according to it:

invert all digit and 1 to it

y = (-) 00000000 00000000 00000000 00000000 + 1;
y = (-) 00000000 00000000 00000000 00000001;
y= (-) 1;

thus System.out.println(y); prints -1

hope u get the logic of unary operator;
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic