我们已经知道计算机中所有数據最终都是使用二进制十六进制数表达。
我们也已经学会如何将一个10进制数如何转换为二进制十六进制数
不过,我们仍然没有学习一个負数如何用二进制十六进制表达
比如,假设有一 int 类型的数值为5,那么我们知道它在计算机中表示为:
5转换成二制是101,不过int类型的数占用4字节(32位)所以前面填了一堆0。
现在想知道-5在计算机中如何表示?
在计算机中负数以其正值的补码形式表达。
什么叫补码呢這得从原码,反码说起
原码:一个整数,按照绝对值大小转换成的二进制十六进制数称为原码。
反码:将二进制十六进制数按位取反所得的新二进制十六进制数称为原二进制十六进制数的反码。
取反操作指:原为1得0;原为0,得1(1变0; 0变1)
比如:将00 每一位取反,得11
反码是相互的,所以也可称:
补码:反码加1称为补码
也就是说,要得到一个数的补码先得到反码,然后将反码加上1所得数称为补码。
比如:00 的反码是:11
所以,-5 在计算机中表达为:11 转换为十六进制:0xFFFFFFFB。
再举一例我们来看整数-1在计算机中如何表示。
假设这也是一个int類型那么:
1、先取1的原码:00
可见,-1在计算机里用二进制十六进制表达就是全116进制为:0xFFFFFF
请定义一个宏,比较两个数a、b的大小不能使鼡大于、小于、if语句。