正数:原码、反码、补码相同,不多做介绍;
关键说一下负数,
负数反码:符号位不变,其余数按位取反;
负数补码:符号位不变,其余数按位取反后再加1(反码加1);
这里重点说一下相反数,一个数(补码形式存储)的相反数不等于反码!它的获取方式如下:
举例:
对于正数,如4 = 0100(补码),它的相反数为-4,-4 = 1100(原)=1011(反)=1100(补),
不难发现,4(0100)的相反数-4(1100)是4的补码含符号位按位取反后再加1得到的;
对于负数,如-5 = 1101(原)=1010(反)=1011(补),它的相反数为5(0101),同样不难发现,-5(1011)的相反数5(0101)是-5的补码含符号位按位取反后再加1得到的,这里区别于负数求补码的操作;
通过以上例子不难发现,一个数无论正负,它的相反数(的补码)获取方式皆是原数(补码形式)含符号位按位取反后再加1得到的,再次强调区别于负数求补码操作。