为了账号安全,请及时绑定邮箱和手机立即绑定

对于‘补0’的问题

http://img1.sycdn.imooc.com//578ca2fe0001261211490529.jpg

代码都一样,可是读出来的却多了个0,

[65, 66, 127, -1, -1, -1, 127, -1, -1, -1, -28, -72, -83]这是文件的编码内容

正在回答

3 回答

当读取字节放入数组中时,

若放入的是正数,if判断的结果是把十六进制只有一位的前面补0

若放入的是负数,所有的负数一定小于0xf这个正数,if判断一定成立,全都会补0

所以会出现有两位十六进制数仍然在前面补0的情况

0 回复 有任何疑惑可以回复我~
#1

超人93 提问者

我在判断里加了一句&0xff,输出对了
2016-07-19 回复 有任何疑惑可以回复我~

(buf(i)&0xff)<=0xf   这样输出格式就对了,不知道逻辑上对不对。。

1 回复 有任何疑惑可以回复我~
#1

gdjy098

我试了一下(buf(i)&0xff)<=0xf,与不用相比,只是前面的0没了,原数据没有改变 逻辑上应该是对的,因为byte是bite,0xff也是8bite,没有数据改变
2016-09-07 回复 有任何疑惑可以回复我~

我也出现了这样的问题,可能是方法里面那个写错了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

对于‘补0’的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信