/* 用下面的打印p你就知道为什么了(log_tab的长度是256,而经过n次循环后 p的值超过了256) */ 
char[] pow_tab=new char[256];
    char[] log_tab=new char[256];
    int  i, t;
    char  p, q;
    for(i = 0,p = 1; i < 256; ++i)
    {
        pow_tab[i] = p;
       System.out.println(p-0);
   log_tab[p] = (char)i;        p =(char)( p ^ (p << 1) ^ ((p & 0x80)!=0 ? 0x01b : 0));    }