8就是0000_1000
取反就是1111_0111
Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。
此时取反后为负数,要重新算它的补码。
所以原码为1111_0111
符号位不变,其他位取反1000_1000
再加1,得1000_1001
换算成十进制得-9
综上8取反为-9
Java 8取反问题
最新推荐文章于 2024-01-05 11:09:57 发布
8就是0000_1000
取反就是1111_0111
Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。
此时取反后为负数,要重新算它的补码。
所以原码为1111_0111
符号位不变,其他位取反1000_1000
再加1,得1000_1001
换算成十进制得-9
综上8取反为-9