GRONBU1 2019-05-22 13:16 采纳率: 0%
浏览 1711

base解码问题,为什么要b[i]+=256?

i


            //Base64解码
            byte[] b = decoder.decodeBuffer(imgStr);
            for(int i=0;i<b.length;++i)
            {
                if(b[i]<0)
                {//调整异常数据
                    b[i]+=256;
                }
            }
            OutputStream out = new FileOutputStream(imgFilePath+fileName);
            out.write(b);
            out.flush();
            out.close();
            return fileName;

这个调整异常数据真的有意义吗,是哪个环节可能出错才这么操作?编码的时候可能出现补了1?还是解码中出现的什么问题
而且好像b[i]+=256之后,b[i]的值并没有改变

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-05-22 15:54
    关注

    因为byte是有符号的,它表示的范围是-127~127,如果要映射到无符号0~255,那么0~127不用改变,而-128~-1对应128~255

    评论

报告相同问题?