第二个方法有问题,if(buf[i]<=0xf)这句有问题,运行结果和老师的不一样,会出现0ce 0ca 0d1这种情况,请老师回答下这个问题
将判断条件写为if((buf[i] &0xff)<= 0xf)。这可能是因为buf[i]取到的数不止八位,这样buf[i]可能是负数了,所以这个判断条件成立了
有可能是你的文件是utf-8包含BOM头格式的,这样前3个字节是ef,ee,bf,所以处理的时候会出现为第一个字节为-17的异常情况,就是这个问题
追问:
为什么buf[i]取到的数不止八位呢? 不是字节数组么?