Under most implementations, that operator does an arithmetic shift
for signed types, so it preserves the sign
bit (which is the leftmost bit), in this case 1
.
As @Clifford correctly pointed out, the language standard leaves the implementation of >>
up to the implementor.
See the Wikipedia article for details.