CRC16校验码算法
CRC16 的校验方式挺常见的,尤其是做 Android 文件传输或跟硬件打交道的时候,能帮你快速确认数据有没有在中途被“折腾”坏了。原理不复杂,说白了就是用个多项式去“算”一串校验码。传的时候加上,收的时候也算一遍,对得上就数据还完整。你要是在搞串口通信、蓝牙、甚至网络求里带文件的场景,用它会挺省心的。
像在 Android Studio 2.2.2 里,你可以手撸一个类,几行位运算搞定,也可以偷个懒,用像 Apache Commons Lang 里的现成方法。多项式选哪个?看协议,常用的像0x1021
或者0x8005
都挺稳的。记得初始化寄存器,多人就是这一步没搞清,调得人头大。还有别忘了输出的是个16 进制
的校验码,别用错格式了。
平时也不光是文件校验用它,像什么内存校验、配置文件核对,甚至你做 IoT 时设备之间的数据交互,它都挺有用。想快速上手,可以看看下面那几个链接,C#、Delphi、PHP 都有实现方式,思路都差不多,移植一下也不难。
18.79MB
文件大小:
评论区