package ais ;public class CRC16{
    public int value ;    public CRC16 ()
    {
        value = 0 ;
    }    public void update ( byte[] aByte )
   {
       int a , b ;
       for(int i=0;i<aByte.length;i++)
       {
           a = ( int ) aByte[i] ;
           for ( int count = 7 ; count >= 0 ; count-- )
           {
               a = a << 1 ;
               b = ( a >>> 8 ) & 1 ;
               if ( ( value & 0x8000 ) != 0 )
               {
                   value = ( ( value << 1 ) + b ) ^ 0x1021 ;
               }
               else
               {
                   value = ( value << 1 ) + b ;
               }
           }
           value = value & 0xffff ;
       }
   }
还有一段程序:catch ( ClassNotFoundException ex )
        {
            ex.printStackTrace () ;
        }
        catch ( SQLException ex )
        {
            ex.printStackTrace () ;
        }
        catch ( ParseException ex )
        {
            ex.printStackTrace () ;
        }
        catch ( IOException ex )
        {
            ex.printStackTrace () ;
        }  

解决方案 »

  1.   


    package ais;public class CRC16 {  public int value ;    //定义一个公共的int型的成员变量     public CRC16 ()     //定义一个无参的构造方法
        { 
            value = 0 ;    //将value赋值为0
        }      public void update ( byte[] aByte )   //定义一个无返回值的公共的update方法, 传一个字节数组
      { 
          int a , b ;                 //定义局部变量 a ,b 
          for(int i=0;i <aByte.length;i++)       //循环字节数组
          { 
              a = ( int ) aByte[i] ;          //将字节数组中的每一个字节强制转换成int型,并赋值给a
              for ( int count = 7 ; count >= 0 ; count-- )   //按7到0逐一递减循环
              { 
                  a = a<<1 ;                //将a 向左移动1位
                  b = ( a >>> 8 ) & 1 ;          //a按拉右移8位, 左边空出的位以0填充. 
                  if ( ( value & 0x8000 ) != 0 )  //如果value按位与0x8000不等于0
                  { 
                      value = ( ( value <<1 ) + b ) ^ 0x1021 ;  //将value按位左移一位, 并加上b的值.然后再按位异或0x1021
                  } 
                  else      //否则
                  { 
                      value = ( value << 1 ) + b ; //将value按位左移一位, 并加上b的值.
                  } 
              } 
              value = value & 0xffff ;   //将value的值按位与0xffff之后赋值给value
          } 
      } 
    }
      

  2.   

      catch ( ClassNotFoundException ex )   //捕捉到要编译的文件没有找到
            { 
                ex.printStackTrace () ;   //打印出异常信息
            } 
            catch ( SQLException ex )     //捕捉SQL异常
            { 
                ex.printStackTrace () ;   //打印出异常信息
            } 
            catch ( ParseException ex )   //捕捉到类型转换异常, 解释错误
            { 
                ex.printStackTrace () ;    //打印出异常信息
            } 
            catch ( IOException ex )     //捕捉到流异常
            { 
                ex.printStackTrace () ; //打印出异常信息
            }