• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Bit Shift Operator Signed Left Shift

 
Sandy Lee
Greenhorn
Posts: 18
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi! All can anyone explain how
- 5 << 29 is giving a positive number of 1610612736
Is << not a signed left shift and should therefore give a
negative number?
I am not able to manually determine th above result.
Can anyone please explain??!!
 
Udayan Naik
Ranch Hand
Posts: 135
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Sandy.The number -5 will be represented as 1111 1111 ...1011.After shifting to the left 29 times,the 0 will be in the MSB position.Now the number will be 0110 0000 ...0000 ;a positive number.The value will be (2 raised to 30 + 2 raised to 29) ie 1610612736.
Try doing the mathematics with paper and pencil,and u will get it.
[This message has been edited by Udayan Naik (edited January 19, 2001).]
 
Sandy Lee
Greenhorn
Posts: 18
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Udayan.
I get it now.
Sandy.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic