这是一段C的代码
unsigned short CRC16(byte *buffer, int CRClen) // buffer:数据缓冲区, CRClen:buffer的长度
{
unsigned short crc = 0xFFFF;
int a, i, j;
for(i=0;i<CRClen;i++)
{
crc ^= buffer[i];
for(j=0;j<8;j++)
{
a = crc & 0x0001;
crc >>= 1;    
if(a > 0)
{
crc ^= 0xA001;
}
}
}
return crc;
}c#

解决方案 »

  1.   

    byte *buffer, int CRClen -> byte[] buffer / buffer.Length
    unsigned short -> ushort
      

  2.   

    这几个我都知道 基本类型的转换
       就是那个几个特殊符号我不知道怎么办·
    1.crc ^= buffer[i];
    2.a = crc & 0x0001;
    3.crc >>= 1;   
    4.crc ^= 0xA001;
    这几个看不懂···
      

  3.   


     ushort CRC16(byte[] buffer, int CRClen) // buffer:数据缓冲区, CRClen:buffer的长度
    {
                ushort crc = 0xFFFF;
                int a, i, j;
                for (i = 0; i < CRClen; i++) {
                    crc ^= buffer[i];
                    for (j = 0; j < 8; j++) {
                        a = crc & 0x0001;
                        crc >>= 1;
                        if (a > 0) {
                            crc ^= 0xA001;
                        }
                    }
                }
                return crc;
            }
    你说的就是  把这几个类型改下? 其他的直接一样???
    我这样对嘛?