kingLeeST 2016-09-24 16:40 采纳率: 100%
浏览 2209
已采纳

Java中byte和short类型初始化时最高位不能为1

Java中byte和short类型初始化时最高位不能为1,如果为1的话编译会出错,提示从int转换到byte会有损失,例如:我这样写 short ashort = 0xFFFF就会编译时出问题

  • 写回答

4条回答 默认 最新

  • mnlin 2016-09-24 18:24
    关注

    编译是可以通过的。在java中:
    int 转为byte,只是简单的截取后八位,有可能会数据出错。
    byte转为int,是将八位扩展为int类型32位数据,后七位不变,前面的25位根据byte最高位来决定。

    所以一般byte转int时,都进行如下操作:
    byte b=0xff;
    int num=b&0xff;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名