加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么这个字节没有异常?

发布时间:2020-12-15 04:40:16 所属栏目:Java 来源:网络整理
导读:我初始化了一个字节如下: byte b = (byte) 0b11110000000; 由于一个字节是8位大小,我期望它会抛出一些异常或错误,因为这个数字应该只能分配给short或者以上.它还评估为-124?或者这可能是“正常”行为? (没有异常抛出,但变量溢出)? 解决方法 你应该得到-1
我初始化了一个字节如下:

byte b = (byte) 0b11110000000;

由于一个字节是8位大小,我期望它会抛出一些异常或错误,因为这个数字应该只能分配给short或者以上.它还评估为-124?或者这可能是“正常”行为? (没有异常抛出,但变量溢出)?

解决方法

你应该得到-128.

当您明确地将int转换为byte时,将获取最低的8位,其余的将被丢弃.

在您的示例中,最低的8位是10000000,并且该数字的十进制值是-128.

如果没有显式强制转换,代码将不会通过编译,因为您的分配会导致信息丢失.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读