精易论坛

标题: 请教JavaScrypt翻译成易语言,CRC16查表法 [打印本页]

作者: wswuzj    时间: 2025-7-5 23:28
标题: 请教JavaScrypt翻译成易语言,CRC16查表法
    var di = function() {
        function t() {}
        return t.update = function(e, i, n) {
            void 0 === i && (i = 0),
            void 0 === n && (n = 0);
            var o = 0
              , s = 0;
            0 == n && (n = e.length),
            e.position = i;
            for (var r = i; n > r; ++r)
                s = 255 & t.CRCBitReflect(e.readByte(), 8) ^ o >> 8 & 16777215,
                s &= 255,
                o = t.CRCTable[s] ^ o << 8 & 4294967040;
            return 65535 & (0 ^ t.CRCBitReflect(o, 16))
        }
        ,
        t.makeCRCTable = function() {
            for (var e = 0, i = new Array(256), n = 0; 256 > n; ++n) {
                e = n << 8 & 4294967040;
                for (var o = 0; 8 > o; ++o)
                    e = 32768 & e ? e << 1 & 4294967294 ^ t.POLYNOMIAL : e << 1 & 4294967294;
                i[n] = e
            }
            return i
        }
        ,
        t.CRCBitReflect = function(e, i) {
            var n = 0
              , o = 0;
            i--;
            for (var s = 0; i >= s; ++s)
                o = i - s,
                1 & e && (n |= 1 << o & t.DropBits[o]),
                e = e >> 1 & 2147483647;
            return n
        }
        ,
        t.POLYNOMIAL = 4129,
        t.CRCTable = t.makeCRCTable(),
        t.DropBits = [4294967295, 4294967294, 4294967292, 4294967288, 4294967280, 4294967264, 4294967232, 4294967168, 4294967040, 4294966784, 4294966272, 4294965248, 4294963200, 4294959104, 4294950912, 4294934528],
        t
    }();

请教各位大神将上述js代码翻译成易语言代码,精币不够可以用马内代替。



作者: wswuzj    时间: 2025-7-5 23:29
上面就是CRC16查表法,非常感谢

补充内容 (2025-7-5 23:59):
求教各位
作者: 冯古屋    时间: 2025-7-6 15:48
你需要知道t这个对象到底是啥
作者: wswuzj    时间: 2025-7-6 17:30
冯古屋 发表于 2025-7-6 15:48
你需要知道t这个对象到底是啥

这个t就是di本身
作者: wswuzj    时间: 2025-7-6 17:31
冯古屋 发表于 2025-7-6 15:48
你需要知道t这个对象到底是啥

可以无视这个t
作者: wswuzj    时间: 3 天前
已自己解决




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4