为什么这个是原码而不是补码?

图片说明

首先,java的移位运算也是用补码计算的;
然后,正整数的原码和补码是一样的(故一般省略);

最后回答提问:负整数的移位运算过程如下
1000 0000 0000 0000 0000 0000 0000 0010 (-2的原码)
1111 1111 1111 1111 1111 1111 1111 1101 (-2的反码)
1111 1111 1111 1111 1111 1111 1111 1110 (-2的补码)
1111 1111 1111 1111 1111 1111 1111 0000 (整体左移,若溢出则舍弃)
1111 1111 1111 1111 1111 1111 1110 1111 (逆运算,-1后得反码)
1000 0000 0000 0000 0000 0000 0001 0000 (取反得原码,最后结果为-16)