-1>>1的结果是-1
在计算机系统中,数值一律用补码来表示和存储。
byte bt = -1;中原码为:1000 0001 反码:1111 1110 补码:1111 1111
-1>>1,右移一位,符号位不变,1111 1111
所以-1>>1,结果还是-1
正数的原码、反码、补码相同,二进制表示所有位。
负数的原码用二进制表示(正数的符号位是0,负数的符号位是1),反码是除符号位全部取反,补码是反码加1。
在计算机系统中,数值一律用补码来表示和存储。
byte bt = -1;中原码为:1000 0001 反码:1111 1110 补码:1111 1111
-1>>1,右移一位,符号位不变,1111 1111
所以-1>>1,结果还是-1
正数的原码、反码、补码相同,二进制表示所有位。
负数的原码用二进制表示(正数的符号位是0,负数的符号位是1),反码是除符号位全部取反,补码是反码加1。