开发者社区> 问答> 正文

int类型强制转化为byte得到什么?

`
int iValue = 233;
byte bValue = (byte) iValue; //int强制转化为byte
System.out.println(bValue);
`
如上代码,输出结果是什么?为什么?

展开
收起
蛮大人123 2016-03-04 11:36:32 3246 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    计算机中数值都是以二进制补码的形式存储
    二进制数值的第一位代表数值的符号(正数为0,负数为1)
    其中正数的补码等于其原码
    负数的补码等于其原码(除符号位)的反码+1
    java中
    int占32位
    byte占8位
    int 233=00000000 00000000 00000000 11101001
    强转后去掉前面的24个0,得11101001
    补码转换为原码的规则:对该补码再次求补码
    接着判断首位是1,为负数,取补码得10010110+1=>-23

    2019-07-17 18:52:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载