posted 19 years ago
I am a liitle confused about how the shift operator works. I am following the Kathy and Bates book. Here are my doubts:
1) int x = 0x80000000;
System.out.println("Before shift occurs:" +x);
x = x << 1;
System.out.println("After shift occurs:" +x);
Answer: Before shift occurs -2147483648
After shift occurs 0
My question: What is that number 2147483648? Where did that come from? Please explain HOW and WHY they get that number.
2) Bitwise Complement Operator
int x = 5;
x = ~x;
Answer: ~x = -6
My question: 5 in binary is: 0101. Converting it gives: 1010 which is 10.
Why is the answer -6? Please explain.
I know these are very fundamental questions. Please excuse me.
Thanks