private static int readBits(byte gzip[],int n)
{

int data=(gzipBit==0?(gzipByte=(gzip[gzipIndex++]&0xFF)):(gzipByte>>gzipBit));

for (int i=(8-gzipBit);i<n;i+=8)
{
gzipByte=(gzip[gzipIndex++]&0xFF); data|=(gzipByte<<i);
}

gzipBit=(gzipBit+n)&7;

return (data&((1<<n)-1));
}

解决方案 »

  1.   

    你的gzipBit与gzipByte是不是全局变量啊?int readBits(int gzip[],int n)
        {
            
            int data=(gzipBit==0?(gzipByte=(gzip[gzipIndex++]&0xFF)):(gzipByte>>gzipBit));
            
            for (int i=(8-gzipBit);i<n;i+=8)
            {
                gzipByte=(gzip[gzipIndex++]&0xFF);            data|=(gzipByte<<i);
            }
            
            gzipBit=(gzipBit+n)&7;
        
            return (data&((1<<n)-1));
        }
      

  2.   

    不好意思,我没接触过JAVA。这是帮别人问的帖子