_mask = 0x80; do { if (_crc & 0x8000) { if (_D & _mask) _crc = _crc << 1; else _crc = (_crc << 1) ^ CRC16_Polynom; } else { if (_D & _mask) _crc = (_crc << 1) ^ CRC16_Polynom; else _crc = _crc << 1; } } while (_mask >>= 1);