Given a variable x of type int(which may contain a negative value) which are correct ways of doubling the value of x,barring any overflow? (a) x << 1; (b) x <<= 1; The answer is (b). Can anybody please explain why?? i thought both are correct. Thanks
a.)x << 1:The value is not assigned back to x,after shifting. b.)x <<=1 :It's actually : x=x<<1. So,after shifting,the value is assigned back to x. Am i right?
Oops!! Forgot the concept that the value of the left-hand operand is NOT affected by the shift operator ,whereas in the second case,x gets the new value due to extended assignment..Yeah I got it!! Thanks a lot for your examples..
It would give a normal human mental abilities to rival mine. To think it is just a tiny ad:
a bit of art, as a gift, the permaculture playing cards