java整形数值采用补码表示,基本类型有byte、short、int、long。每个类型的最高位是符号位,以最简单的byte为例,比如1和-1的二进制表示分别为00000001和11111111,用算术表示分别为和
这样表示的好处也是显而易见的,当求两个数的差,可以直接求和,如1-1就是0。但是如果用原码表示法就是00000001+10000001就会变成
10000010,从而导致了错误的结果-2,很明显用原码进行整数减法时需要特殊处理,这样降低了运算效率。
java整形数值采用补码表示,基本类型有byte、short、int、long。每个类型的最高位是符号位,以最简单的byte为例,比如1和-1的二进制表示分别为00000001和11111111,用算术表示分别为和
这样表示的好处也是显而易见的,当求两个数的差,可以直接求和,如1-1就是0。但是如果用原码表示法就是00000001+10000001就会变成
10000010,从而导致了错误的结果-2,很明显用原码进行整数减法时需要特殊处理,这样降低了运算效率。
转载于:https://my.oschina.net/u/1268334/blog/1935109