先说第一种,我们先来看age=300这个数字是如何被压缩的
这两个字节字节分别的结果是:-84 、2
-84怎么计算来的呢? 我们知道在二进制中表示负数的方法,高位设置为1, 并且是对应数字的二进制取反以后再计算补码表示(补码是反码+1)
所以如果要反过来计算
1. 【补码】10101100 -1 得到 10101011
2. 【反码】01010100 得到的结果为84. 由于高位是1,表示负数所以结果为-84
先说第一种,我们先来看age=300这个数字是如何被压缩的
这两个字节字节分别的结果是:-84 、2
-84怎么计算来的呢? 我们知道在二进制中表示负数的方法,高位设置为1, 并且是对应数字的二进制取反以后再计算补码表示(补码是反码+1)
所以如果要反过来计算
1. 【补码】10101100 -1 得到 10101011
2. 【反码】01010100 得到的结果为84. 由于高位是1,表示负数所以结果为-84