CRC 校验 0 字符编码: UTF-8 UTF-16LE UTF-16BE GBK(简繁体) GB18030(中日韩) Big5(台湾繁体中文) Hex(16 进制) ASMO-708 CP1025 CP866 CP875 DOS-720 DOS-862 EUC-JP IBM-THAI IBM037 IBM273 IBM277 IBM278 IBM280 IBM284 IBM285 IBM290 IBM297 IBM420 IBM423 IBM424 IBM437 IBM500 IBM737 IBM775 IBM850 IBM852 IBM855 IBM857 IBM860 IBM861 IBM863 IBM864 IBM865 IBM869 IBM870 IBM871 IBM880 IBM905 IBM1026 IBM00858 IBM00924 IBM01047 IBM01140 IBM01141 IBM01142 IBM01143 IBM01144 IBM01145 IBM01146 IBM01147 IBM01148 IBM01149 ISO-8859-1 ISO-8859-2 ISO-8859-3 ISO-8859-4 ISO-8859-5 ISO-8859-6 ISO-8859-7 ISO-8859-8 ISO-8859-9 ISO-8859-13 ISO-8859-15 JOHAB KOI8-R KOI8-U KS_C_5601-1987 MACINTOSH SHIFT_JIS US-ASCII UTF-32LE UTF-32BE WINDOWS-1250 WINDOWS-1251 WINDOWS-1252 WINDOWS-1253 WINDOWS-1254 WINDOWS-1255 WINDOWS-1256 WINDOWS-1257 WINDOWS-1258 WINDOWS-874 X-CHINESE-CNS X-CHINESE-ETEN X-CP20001 X-CP20003 X-CP20004 X-CP20005 X-CP20261 X-CP20269 X-CP20936 X-CP20949 X-EBCDIC-KOREANEXTENDED X-EUROPA X-IA5 X-IA5-GERMAN X-IA5-NORWEGIAN X-IA5-SWEDISH X-MAC-ARABIC X-MAC-CE X-MAC-CHINESETRAD X-MAC-CROATIAN X-MAC-CYRILLIC X-MAC-GREEK X-MAC-HEBREW X-MAC-ICELANDIC X-MAC-JAPANESE X-MAC-ROMANIAN X-MAC-THAI X-MAC-TURKISH X-MAC-UKRAINIAN CRC-4 CRC-8 CRC-16 CRC-32 说明 CRC:Cyclic Redundancy Check,循环冗余检验,在链路层被广泛使用的检错技术,具有检错和纠错能力。 不同于海明校验和奇偶校验,它不是以奇偶校验关系为基础,而是以多项式校验为基础。 编码思想:在 原始报文 后面添加计算得到的校验码,再将这个 原始报文+校验码 作为一个新的报文发送给接收方。 CRC 校验案例 假设 CRC 生成多项式为 G(x)=x^4+x+1(x 的 k 次方,k=4,此处采用的是常见的 CRC-4/ITU 参数模型),二进制表示共 5 位,10011,二进制是多项式的系数。 1. 要发送的报文为 101011,共 6 位;在报文后补充 k 位(即补充 4 位,全 0),补充后的报文为 1010110000,共 10 位; 2. 用补充后的报文 1010110000 模 2 除以 10011(生成多项式的二进制表示),得到余数为 100,因为余数必定是 k 位(k=4),所以在 100 前补 0,即余数为 0100; 3. 将余数 0100(这就是 CRC 校验码)补充到发送报文 101011 后面,得到真正要发送的报文 1010110100; 4. 接收端在接收到此报文时,会使用相同的生成多项式整除,结果为 0 则表示传输过程无差错。