banu saro

Greenhorn

Posts: 3

Barry Gaunt

Ranch Hand

Posts: 7729

posted 12 years ago

Moving to Java In General (Beginner)...

Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch

Getting someone to think and try something out is much more useful than just telling them the answer.

Rishi Chopra

Ranch Hand

Posts: 108

posted 12 years ago

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;

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;

Life is Beautiful Learn to See it.........