java整形数值采用补码表示,基本类型有byte、short、int、long。每一个类型的最高位是符号位,以最简单的byte为例,好比1和-1的二进制表示分别为00000001和11111111,用算术表示分别为和java
这样表示的好处也是显而易见的,当求两个数的差,能够直接求和,如1-1就是0。可是若是用原码表示法就是00000001+10000001就会变成3d
10000010,从而致使了错误的结果-2,很明显用原码进行整数减法时须要特殊处理,这样下降了运算效率。blog