求把这段C语言的CRC16校验代码转换成C#代码

intCRC16(char*p,intlen){unsignedcharl,h,t;inti;l=h=0xff;for(i=0;i<len;i++){h^=p[i];h^... int CRC16( char *p, int len )
{
unsigned char l, h, t;
int i;
l=h=0xff;
for( i=0; i<len; i++ )
{
h^=p[i];
h^=h>>4;
t=h;
h=l;
l=t;
t=(l<<4) | (l>>4);
h^=((t<<2) | (t>>6)) & 0x1f;
h^=t&0xf0;
l^=((t<<1) | (t>>7)) & 0xe0;
}
i = ((int)h<<8) | l;
return i;

input:2200000C20140730111000000038465E4DA6F447D4992B0ABDD343CC110C02000105000703102015073000000000

output:E337
展开
 我来答
怪微风太温柔Cide1
2014-08-05 · TA获得超过153个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:180万
展开全部
static void Main(string[] args)
        {
            int i = CRC16("2200000C20140730111000000038465E4DA6F447D4992B0ABDD343CC110C02000105000703102015073000000000", "2200000C20140730111000000038465E4DA6F447D4992B0ABDD343CC110C02000105000703102015073000000000".Length);
            Console.Write(i.ToString("x"));
            Console.Read();
        }

        static int CRC16(string p, int len)
        {
            int l, h, t;
            int i;
            l = h = 0xff;
            for (i = 0; i < len; i++)
            {
                h ^= p[i];
                h ^= h >> 4;
                t = h;
                h = l;
                l = t;
                t = (l << 4) | (l >> 4);
                h ^= ((t << 2) | (t >> 6)) & 0x1f;
                h ^= t & 0xf0;
                l ^= ((t << 1) | (t >> 7)) & 0xe0;
            }
            i = ((int)h << 8) | l;
            return i;
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式