public static byte[] crc(byte[] data)
{//crc校验Byte CRC16Lo = 0xFF;// CRC寄存器
Byte CRC16Hi = 0xFF;
Byte CL = 0x01;  //  '多项式码&HA001
Byte CH = 0xA0;
Byte SaveHi, SaveLo;for (int intI = 0; intI < data.Length; intI++)
{CRC16Lo = Convert.ToByte(CRC16Lo ^ data[intI]);          //每一个数据与CRC寄存器进行异或
for (int flag = 0; flag < 7; flag++)
{
SaveHi = CRC16Hi;
SaveLo = CRC16Lo;
CRC16Hi = Convert.ToByte(CRC16Hi / 2);          //      '高位右移一位
CRC16Lo = Convert.ToByte(CRC16Lo / 2);        //        '低位右移一位
if ((SaveHi & 0x01) == 0x01)
{                                              //'如果高位字节最后一位为1
  CRC16Lo = Convert.ToByte(CRC16Lo | 0x80);      //'则低位字节右移后前面补1
}                                                //'否则自动补0
if (Convert.ToByte(SaveLo &0x01) == 0x01)
    {     //如果CRC16的LSB(最低位)为1,则与多项式码进行异或
CRC16Hi = Convert.ToByte(CRC16Hi ^ CH);
CRC16Lo = Convert.ToByte(CRC16Lo ^ CL);
    }    }
  }     byte[] bytCRCResult = new byte[2];
     bytCRCResult[0] = CRC16Hi;
     bytCRCResult[1] = CRC16Lo;
     return bytCRCResult;}请问高手那里有错!