Java中涉及byte.short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果.因此,如果把两个byte类型值相加,最后会得到一个int类型的结果.如果需要得到byte类型结果,必须将这个int类型的结果显式转换为byte类型.例如,下面的代码会导致编译失败:class BadArithmetic { static byte addOneAndOne() { byte a = 1; byte b = 1; byte c = (a +…
Java中的整数都是通过补码表示的,当整数为正数时,补码和原码相同,当整数为负数时,补码为原码按位取反(符号位除外),然后加1. 通过一些例子可以比较明显的看出: int a = -1; System.out.println(Integer.toBinaryString(a));//output: 11111111111111111111111111111111 int a = -128; System.out.println(Integer.toBinaryString(a));//outpu…