A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int i=393; System.out.println((byte)i);运行的结果是-119;
i强制转换成byte类型,而byte类型的范围是-128~127超出了byte范围,但是为什么是负数呢?大神求解释,;

1 个回复

倒序浏览
本帖最后由 hm837694030 于 2016-4-14 21:34 编辑

393的二进制   00000000 00000000 00000001 10001001
截取byte 10001001
补码 1   0001001
反码 1   0001000
原码 1   1110111
   即  -   119
计算机是用补码运算的,所以并不会错哦。




回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马