假设有一个只有4位的二进制:0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111,共16个数,来表示-8到7共16个数。
很自然的我们想到用0000-0111来表示0-7.
-8到-1该用谁来表示呢,有个原码是用的1000表示-1,1001表-2,等等以此类推,还说是自然顺序。
我觉得一点也不自然。
因为前面,从0000到0111来表示-到7,是从小到大依次一一对应。而如果用1000到1111来表示-1到-8,岂不是变成从二进制从小到大,十进制从大到小的对应了?
所以,所谓的补码才是自然的,1000到1111中谁最大,当然是1111,而-1到-8谁最大,当然是-1,所以1111和-1对应,才是自然美。