问答详情
源自:2-10 Java中的强制类型转换

强制类型转换 在评论中看见了两种特殊情况 求指教

在强制类型转换时,要注意边界数风险问题,因此存在两种特殊情况(也是考点所在) 。
特殊1:源数据的数据位变为目标数据的符号位
 int i = 129;
byte b=(byte)i;
那么此时b=?
特殊2:大数据的数据超过了小数据的位数
int i = 257;
byte b =(byte)i;
那么此时b=?

提问者:Hanabie 2017-02-01 12:46

个回答

  • shadowbl
    2017-02-01 14:47:26
    已采纳

    所以当你的int是 0到256时,转换后的byte 值为当前int值减去256
    比如:int num1=129;那么转化后为-127

    其他情况也是和256有关系,倍数关系的加减

  • shadowbl
    2017-02-01 14:46:23

    1、b=-127

    2、b=1

  • 慕仔7888788
    2017-02-01 14:40:47

    边界性问题你得先写出那个数的补码,然后还得考虑有没有溢出的问题