将crc javascript func转换为c $ func

时间:2016-12-30 23:00:41

标签: c# crc32

我有问题,因为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;
}

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);
    }
}

感谢