还有这个方法也看不太懂  
 public int decode(byte abyte0[], int i, int j, byte abyte1[], int k)
    {
        int l = j / 2;
        for(int i1 = 0; i1 < l; i1++)
        {
            byte byte0 = abyte0[i + i1 * 2];
            byte byte1 = abyte0[i + i1 * 2 + 1];
            if(byte0 < 97)
                abyte1[k] = (byte)(byte0 - 48 << 4);
            else
                abyte1[k] = (byte)((byte0 - 97) + 10 << 4);
            if(byte1 < 97)
                abyte1[k] += (byte)(byte1 - 48);
            else
                abyte1[k] += (byte)((byte1 - 97) + 10);
            k++;
        }        return l;
    }