CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。因此,通过检查这一关系,就可以实现对数据正确性的检验。
有这么一种应用场景,应用上线后,做ABTest,一半用户能用A功能,一半用户能用B功能。此时就可以对用户手机的IMEI做CRC32运算,生成一个long数值,然后对最后一位做奇偶数判断即可。代码如下:
CRC32 crc32 = new CRC32(); crc32.update("imei_imei_imei".getBytes()); Log.v("tag_2","crc32.getValue() = " + crc32.getValue());
输出:
crc32.getValue() = 333994542