概念:
正数的源码,反码,补码是一样的;
负数的原码,最高位是符号位,其余位为该数相反数的源码(即绝对值的源码);反码是原码的符号位不变,其余为取反;补码在反码的基础上加1;
例子:
如:1111,1111 表示的数是-1,可以根据运算规则得到-1,还可以这样计算,最高为1是符号位,其余为都是最大位,八位的负数的最大值是多少?-1
再如:1000 0000 表示的数是多少? 已知补码求源码,有两种方式,
①:求补的逆运算,即把求一个数的补码的过程倒过来, 1000 0000 减去1得到,0111 1111 (此时最高为参与运算)再取反得到:1000 0000 又因为是负数,所以是-128 ;
②:求补运算,连同符号位,取反加1;1000 0000 取反得到:0111 1111 加1 得到 1000 0000 又因为是负数,所以是 -128;
③:还可以这样计算,最高为是符号位1,其余为是0,最小值,所以是8位的最小值,是-128,也计即byte类型的最小值。