2016-12-30 48 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