int转两字节byte数组判断符号问题

王者_来归 2018-11-05 05:03:49
一个int类型的数据,比如:-2650,转换成两字节的byte数组,为:[-11, -90],再把这个byte数组转成int时,得到的不是-2650,而是62886,这实际的-2650和得到的62886相差刚好是65536。

问题:请问我如何才能得到正确的值?

PS:如果把-2650转成4字节,高位是符号位,可以判断正负,但两位的情况下,怎么样能够判断?

请不要问我为什么不转成4字节的或者为什么要转与byte后再转回来。
...全文
462 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2018-11-12
  • 打赏
  • 举报
回复
你把int转成2个字节,高位已经丢失,你又如何恢复 如果这样,你就默认高位丢失的信息都是0xff吧 byte b1 = (byte)n; byte b2 = (byte)(n >> 8); n = (b2 << 8) & 0xffffff00; n = n | (b1 & 0xffff00ff);
veklor 2018-11-12
  • 打赏
  • 举报
回复
二进制原码反码补码问题
王者_来归 2018-11-06
  • 打赏
  • 举报
回复
没有人遇到这种情况吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧