-1>>1的结果是-1

在计算机系统中,数值一律用补码来表示和存储。

byte bt = -1;中原码为:1000 0001 反码:1111 1110 补码:1111 1111
-1>>1,右移一位,符号位不变,1111 1111
所以-1>>1,结果还是-1

正数的原码、反码、补码相同,二进制表示所有位。
负数的原码用二进制表示(正数的符号位是0,负数的符号位是1),反码是除符号位全部取反,补码是反码加1。

posted @ 2018-11-13 17:56  黄小胖不胖  阅读(1379)  评论(0)    收藏  举报