溢出规则:用该数 - 目标类型的大小*n,保证减出的差位于取值范围内。
应该是:
用该数 - 目标类型的大小*(乘以)2n,保证减出的差位于取值范围内。
int myint = 280;
byte mybyte = (byte)myint;
System.out.print(mybyte);//24
//byte 的最大绝对值是128(-128的绝对值),所以2n即256.如果取4n,则结果是 280-256*2=-232,-232超出byte类型的范围(-128~127).不符合要求
//280-128*2=24;
参考:
https://zhuanlan.zhihu.com/p/43720631
https://zhidao.baidu.com/question/1818804673612156868.html