2016-12-30 42 views
-5

我有一个问题惠特c#, 请有人将此JavaScript函数转换为C#。

function mycrc(str) { 
     var c; 
     var crcTable = []; 
     for(var n = 0; n < 256; n++){ 
      c = n; 
      for(var k = 0; k < 8; k++){ 
       c = ((c&1) ? (0xEDB88320^(c >>> 1)) : (c >>> 1)); 
      } 
      crcTable[n] = c; 
     } 



    var crc = 0^(-1); 
    for (var i = 0; i < str.length; i++) { 
     crc = (crc >>> 8)^crcTable[(crc^str.charCodeAt(i)) & 0xFF]; 
    } 
    return (crc^(-1)) >>> 0; 
} 

回答

0
uint mycrc(string str) 
{ 
    unchecked { 
     uint c; 
     uint[] crcTable = new uint[256]; 
     for (uint n = 0; n < 256; n++) { 
      c = n; 
      for (var k = 0; k < 8; k++) { 
       c = ((c & 1) != 0) ? (0xEDB88320^(c >> 1)) : (c >> 1); 
      } 
      crcTable[n] = c; 
     } 



     uint crc = 0^(uint)(-1); 
     for (var i = 0; i < str.Length; i++) { 
      crc = (crc >> 8)^crcTable[(crc^str[i]) & 0xFF]; 
     } 
     return crc^(uint)(-1); 
    } 
} 

THANK

+1

其工作谢谢sooooooooooo多 –

+0

没有问题检查答案正确的,如果THANK –

+0

我downvoted这个答案,因为谁似乎已经度过了零的努力,只是spoonfeeding用户使用堆栈溢出免费的代码写作服务没有任何好处。 – Carpetsmoker