问答详情
源自:4-2 字节流之文件输入流FileInputStream-2

为什么两种方法的输出结果不同

http://img.mukewang.com/59845b920001a31607180283.jpg

http://img.mukewang.com/59845b920001951c09170060.jpg

http://img.mukewang.com/59845b9300014f5b07250354.jpg

http://img.mukewang.com/59845b9300016fe907550060.jpg

输出结果不同

提问者:沙滩贝壳 2017-08-04 19:34

个回答

  • _哦
    2017-08-05 16:01:23
    已采纳

    把Integer.toHexString(b)这个改成Integer.toHexString(b & 0xff)就一样了。

  • Lx_21
    2018-06-12 08:40:24

    这个还有一个问题,单位数补0,不然会得到更加奇怪的答案

    if(buf[i]<=0xf) {

    System.out.print("0");

    }

    这样读取出来结果好像有问题。

    按照你的代码应该这样写

    if(bytes<=0xf) {

    System.out.print("0");

    }


  • nize1989
    2017-08-21 20:46:43

    老师讲错了,一定要在数组输出法的输出格式里面加上按位与操作 System.out.print(Integer.toHexString(buf[i]& 0xff)+" "); 不然得不到相同结果