given
int a = 1;
(00000000000000000000000000000001
),
what I did is just
a=(a<<31)>>31;
I assume a
should still be 1
after this statement (nothing changed I think). However, it turns out to be -1
(11111111111111111111111111111111
). Anyone knows why?