当前位置: 代码迷 >> C# >> 这段C语言代码改为C
  详细解决方案

这段C语言代码改为C

热度:102   发布时间:2016-05-05 04:10:39.0
这段C语言代码改成C#
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;
        }
  相关解决方案