false。
java中byte的取值范围是-128~127,发生上溢下溢时要模256;130>127上溢,故模256得130,仍溢出,再减256得-126,所以s=-126。300>127上溢,故模256得44,44在byte取值范围内,故s=44.
300 的 二进制是:100101100;byte强制转换后从右往左取8位为:00101100;因为第八位为0所以为正数,又知道正数的原反补码都相同;所以00101100转换为十进制是:44(32+8+4)
(byte)100+(short)200,byte和short的结果会自动转为short不会溢出。所以(byte)100+(short)200=(short)300,而(byte)300的结果是44.即两者不相等。
false。
java中byte的取值范围是-128~127,发生上溢下溢时要模256;130>127上溢,故模256得130,仍溢出,再减256得-126,所以s=-126。300>127上溢,故模256得44,44在byte取值范围内,故s=44.
300 的 二进制是:100101100;byte强制转换后从右往左取8位为:00101100;因为第八位为0所以为正数,又知道正数的原反补码都相同;所以00101100转换为十进制是:44(32+8+4)
(byte)100+(short)200,byte和short的结果会自动转为short不会溢出。所以(byte)100+(short)200=(short)300,而(byte)300的结果是44.即两者不相等。