无法将'int'隐式转换成'ushort',存在一个显示转换(是否缺少强制转换)
c#翻译c时出错(如题),刚学c#一时找不到办法解决,高人能否指点下
C code:
const unsigned short cnCRC_16 = 0x8005;
unsigned long Table_CRC[256]; // CRC 表
unsigned short CRC_16( unsigned char * aData, unsigned long aSize )
{
unsigned long i;
unsigned short nAccum = 0;
BuildTable16( cnCRC_16 ); // or cnCRC_CC99vT
for ( i = 0; i < aSize; i++ )
nAccum = ( nAccum << 8 ) ^ ( unsigned short )Table_CRC[( nAccum >> 8 ) ^ *aData++];
return nAccum;
}
*******************************************************
c#:
public const ushort cnCRC_16 = 0x8005;
public UInt32[] Table_CRC_16 = new UInt32[256];
public ushort CRC16(ref byte[] aData, UInt32 aSize)
{
UInt32 i;
ushort nAccum = 0;
for (i = 0; i <aSize; i++)
{
nAccum = (nAccum << 8) ^ (ushort) Table_CRC_16[(nAccum >> 8) ^ aData[i]];//这里提示出错(如题)
}
return nAccum;
}