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

来源:2-10 Java中的强制类型转换

Hanabie

2017-02-01 12:46

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

写回答 关注

3回答

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

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

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

    喵喵E

    不是很明白能详细说下怎么变的吗?

    2018-03-10 10:34:13

    共 2 条回复 >

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

    1、b=-127

    2、b=1

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

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


Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165648 学习 · 17587 问题

查看课程

相似问题