所谓编码,就是一种规则,同样补码也是一种规则,它的意义在于,我们怎样从一串0和1组成的排列中解释出这这串0和1表示的数字是多少。
补码的规则是:假如变量的位长度是w,补码令最高位的权重为,其它位的权重都是正。比如一个8位的有符号数二进制是10000010,那它的有符号表示应该是。
很多人不明白什么是补码,就是因为没有明白补码最重要的一点:最高位的权重是
同样的道理,表示负数的方式还有反码,原码:
反码,就是最高位权重定义为;
原码,最高位权重定义为符号位,也就是-1。
由于解码方式不同,有符号类型的数字在对负数的计算中处理方式也是不同的。由于补码在计算和表示方式上有多种优势,目前的编译器有符号的解码方式都是使用的补码。