java signed_如何从java中的字节读取signed int?

我有一个规范读取接下来的两个字节是signed int.

要在java中读取我有以下内容

当我使用以下代码在java中读取signed int时,我得到值65449

计算无符号的逻辑

int a =(byte[1] & 0xff) <<8

int b =(byte[0] & 0xff) <<0

int c = a+b

我认为这是错误的,因为如果我和0xff我得到一个无符号的等价物

所以我删除了& 0xff和下面给出的逻辑

int a = byte[1] <<8

int b = byte[0] << 0

int c = a+b

which gives me the value -343

byte[1] =-1

byte[0]=-87

我试图用规范读取的方式来抵消这些值,但这看起来很错误.因为堆的大小不在此范围内.

在java中进行signed int计算的正确方法是什么?

这是规范的方式

somespec(){xtype 8 uint8 xStyle 16 int16}

xStyle:一个带符号的整数,表示从此Widget()结构的开头到xStyle()结构的开头的偏移量(以字节为单位),该结构表示由页面窗口小部件定义的继承样式以及专门应用于此窗口小部件的样式.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值