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

第二个方法有问题

第二个方法有问题,if(buf[i]<=0xf)这句有问题,运行结果和老师的不一样,会出现0ce  0ca  0d1这种情况,请老师回答下这个问题

正在回答

3 回答

将判断条件写为if((buf[i] &0xff)<= 0xf)。这可能是因为buf[i]取到的数不止八位,这样buf[i]可能是负数了,所以这个判断条件成立了

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

漠其世

可是不是byte[] buf吗 8位的字节数组啊 但是16进二进制可用4个16进制数表示8进制也就是2位(可能是0开头的)建议楼主打全代码瞧瞧
2015-08-12 回复 有任何疑惑可以回复我~
#2

逆天子陆离 提问者

非常感谢!
2015-08-29 回复 有任何疑惑可以回复我~

有可能是你的文件是utf-8包含BOM头格式的,这样前3个字节是ef,ee,bf,所以处理的时候会出现为第一个字节为-17的异常情况,就是这个问题

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

追问:

为什么buf[i]取到的数不止八位呢? 不是字节数组么?

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

举报

0/150
提交
取消

第二个方法有问题

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