1. 程式人生 > 實用技巧 >C# CRC 計算 校驗

C# CRC 計算 校驗

        /// <summary>
        /// CRC計算
        /// </summary>
        /// <param name="arr">源資料</param>
        /// <param name="seat">開始位置</param>
        /// <param name="len">長度</param>
        /// <returns></returns>
        public static byte [] Crc(byte[] arr, UInt16 seat, UInt32 len)
        {

            UInt32 i;
            UInt16 j, uwCrcReg 
= 0xFFFF; for (i = seat; i < (len); i++) { uwCrcReg ^= arr[i]; for (j = 0; j < 8; j++) { if ((uwCrcReg & 0x0001) != 0) { uwCrcReg = (UInt16)((UInt16)(uwCrcReg >> 1
) ^ (UInt16)0xA001); } else { uwCrcReg = (UInt16)(uwCrcReg >> 1); } } } byte [] CRC=new byte[2]; CRC[0] = (byte)(uwCrcReg); CRC[1] = (byte
)(uwCrcReg >> 8); return CRC; }