u8 CheckSumUdpChar(u8 *check,u8 length)
{
u16 sum=0;
u8 i;
for (i = 0; i < length; i++)
{
if(i&1)
sum += (u16)check[i];
else
sum += (u16)check[i]<<8;
if(sum >> 16)
{
sum++;
sum &= 0xffff;
}
}
return ~sum;
}
这段代码用C#怎么写,求助?
------解决思路----------------------
那些& << >>是按位运算符吧,C#里也有。睡觉去先,等楼下高人解答
------解决思路----------------------
byte CheckSumUdpChar(byte *check,byte length)
{
ushort sum=0;
byte i;
for (i = 0; i < length; i++)
{
if((i&1)>0)
sum += (ushort)check[i];
else
sum += (ushort)check[i]<<8;
if((sum >> 16)>0)
{
sum++;
sum &= 0xffff;
}
}
return ~sum;
}
------解决思路----------------------
static ushort CheckSumUdpChar(byte[] check, byte length)
{
ushort sum = 0;
byte i;
for (i = 0; i < length; i++)
{
if ((i & 1)>0)
sum += (ushort)check[i];
else
sum += (ushort)(check[i] << 8);
if ((sum >> 16)>0)
{
sum++;
sum &= 0xffff;
}
}
return (ushort)~sum;
}