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

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

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

版权声明:本文为sunny-8原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sunny-8/p/9953578.html