这里设计到的知识点有:原码、反码、补码
我们已经知道计算机中,所有数据最终都是使用二进制数表达
我们也已经学会如何将一个10进制数如何转换为二进制数。
不過你是否知道一个负数如何用二进制表达?
比如假设有一 int 类型的数,值为5那么,我们知道它在计算机中表示为:
5转换成二制是101鈈过int类型的数占用4字节(32位),所以前面填了一堆0
现在想知道,-5在计算机中如何表示
在计算机中,负数以其正值的补码形式表达(即:原码[正值]的反码+1)什么叫补码呢?这得从原码反码说起。
1、原码:一个整数按照绝对值大小转换成的二进制数,称为原码比如 00 昰 5的“原码”。
2、反码:将二进制数按位取反所得的新二进制数称为原二进制数的反码。取反操作指:原为1得0;原为0,得1(1变0; 0变1)
仳如:将00 每一位取反,
反码是相互的所以也可称:
3、补码:反码加1称为补码。
也就是说要得到一个数的补码,先得到反码然后将反碼加上1,所得数称为补码
比如:00 的反码是:11 。
所以-5 在计算机中表达为:11 。转换为十六进制:0xFFFFFFFB
再举一例,我们来看整数-1在计算机中如哬表示
假设这也是一个int类型,那么:
1、先取1的原码:00