From d2504172f960e30620b0b232181b08021f825700 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 5 Feb 2018 21:21:08 +0000 Subject: [PATCH] Small optimisation of the CRC calculations. --- NXDNCRC.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/NXDNCRC.cpp b/NXDNCRC.cpp index 29da35c..7ffc456 100644 --- a/NXDNCRC.cpp +++ b/NXDNCRC.cpp @@ -142,13 +142,12 @@ uint8_t CNXDNCRC::createCRC6(const unsigned char* in, unsigned int length) bool bit2 = (crc & 0x20U) == 0x20U; crc <<= 1; - crc &= 0x3EU; if (bit1 ^ bit2) crc ^= 0x27U; } - return crc; + return crc & 0x3FU; } uint16_t CNXDNCRC::createCRC12(const unsigned char* in, unsigned int length) @@ -160,7 +159,6 @@ uint16_t CNXDNCRC::createCRC12(const unsigned char* in, unsigned int length) bool bit2 = (crc & 0x0800U) == 0x0800U; crc <<= 1; - crc &= 0x0FFEU; if (bit1 ^ bit2) crc ^= 0x080FU; @@ -178,7 +176,6 @@ uint16_t CNXDNCRC::createCRC15(const unsigned char* in, unsigned int length) bool bit2 = (crc & 0x4000U) == 0x4000U; crc <<= 1; - crc &= 0x7FFEU; if (bit1 ^ bit2) crc ^= 0x4CC5U;