如何在Android上正确使用CRC32

问题描述

我正在使用java.util.zip.CRC32计算CRC32。 我正在检测奇怪的特征;我的应用程序连接到由char数组计算CRC32的设备,请参见简单测试:

    val i: Int = 123456789
    val crc32 = CRC32Any()

    crc32.reset()
    crc32.update(i)
    Timber.i ("CRC32 by int '$i': ${crc32.value}")

    crc32.reset()
    var arr = ByteBuffer.allocate(Int.SIZE_BYTES)
            .putInt(i)
            .array()
    crc32.update(arr)
    Timber.i ("CRC32 by array '${arr.toHexString()}': ${crc32.value}")

    crc32.reset()
    arr.reverse()
    crc32.update(arr)
    Timber.i ("CRC32 by reverse arr '${arr.toHexString()}': ${crc32.value}")

结果:

CRC32 by int '123456789': 3219065702
CRC32 by array '075BCD15': 3488836380
CRC32 by reverse arr '15CD5B07': 417295518

所有CRC32不匹配! 如何使用 java.util.zip.CRC32 计算正确的CRC32,以正确使用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)