given
int a = 1; (00000000000000000000000000000001),
what I did is just
a=(a<<31)>>31;
It is a signed shift so the left most bit will be extended. That way the overall number is on the same side of 0.
By left shifting that much you put the lowest bit into the sign bit and end up with a negative number.
When you then do a right shift it sign extends, copying the sign bit down to the lower 31 bits.
If you want to know the lowest bit just do & 1.