
计算机二进制
二进制 顾名思义 只有两个数字 即0和1
倒着数,第一个数为n,第二个为n+1,以此类推,每一位数乘以2的n-1次方,然后相加即为十进制
如
1010=1*2³+0*2²+1*2¹+0*2⁰即10
通过8421原则可以快速计算
计算机的二进制
二进制每一位为1bit
计算机用8bit来表示一个数(1byte=8bit),范围为0000 0000~1111 1111
即十进制0到255(2⁸-1)
正常情况下1111 1111为255
这在数学上没有问题,想表示负数只要在前面加上个-即可,但是计算机没有负号只有0和1 只能把这0到255共256个数分成两部分,一部分为0和正,一部分为负
即0~127和-128~-1(第127个数字紧接着的第128个数的数值是-128而不是128或-1)
所以在计算机的二进制中1111 1111为-1
若一个数为6即二进制0000 0110
那么-6怎样表示?
0000 0110的反码(0变1 1变1)为1111 1001 这个数恰好为-7
不难发现-6即为-7+1 也就是1111 1001的补码(即+1)1111 1010
为什么会出现这种情况呢?
0为0000 0000 而-1为1111 1111
0的反码即-1
同理1的反码即-2
......
127的反码即-128
所以,结果显而易见,在计算机中,一个十进制的数的相反数为这个数的二进制的反码的补码。