Free online binary tool

CRC Polynomial Calculator

Calculate cyclic redundancy check (CRC) values with standard presets or custom generator polynomials. Choose the CRC width, polynomial, initial register, reflection settings and final XOR to check data used in embedded systems, communication protocols and file formats.

Calculate a CRC checksum

Enter text or hexadecimal bytes, select a CRC model, and calculate the checksum instantly in your browser.

Text is converted to UTF-8 bytes before calculating the CRC.
Calculated CRC value
0xCBF43926
Decimal 3421780262
Binary 11001011...
CRC bytes, big-endian CB F4 39 26
CRC bytes, little-endian 26 39 F4 CB
Input length 9 bytes
Expected value comparison Not provided

Common CRC polynomial presets

Select a preset to load its standard parameters into the calculator. Always confirm the complete CRC model against your protocol documentation.

CRC model Width Polynomial Init Check value* Load
CRC-8/SMBUS 8 07 00 F4
CRC-16/CCITT-FALSE 16 1021 FFFF 29B1
CRC-16/MODBUS 16 8005 FFFF 4B37
CRC-16/XMODEM 16 1021 0000 31C3
CRC-32/ISO-HDLC 32 04C11DB7 FFFFFFFF CBF43926
CRC-32C 32 1EDC6F41 FFFFFFFF E3069283

*Check values are for the ASCII text 123456789. Presets also set their reflection and final XOR values.

What is a CRC polynomial?

A cyclic redundancy check (CRC) is an error-detection method used to identify accidental changes in digital data. The input message is treated as a polynomial over binary arithmetic, divided by a generator polynomial, and represented by the remainder. That remainder is the CRC checksum.

CRC arithmetic uses modulo-2 operations. In practice, subtraction and addition are both implemented with XOR, so many CRC algorithms use repeated shifts and conditional XOR operations rather than ordinary integer division.

How to use the CRC polynomial calculator

  1. Choose a standard CRC preset or select custom parameters.
  2. Enter the message as UTF-8 text or as hexadecimal bytes.
  3. Select the CRC width: 8, 16 or 32 bits.
  4. Set the generator polynomial, initial value and final XOR.
  5. Set input and output reflection according to the CRC specification.
  6. Click Calculate CRC and inspect the result in the required format.
  7. Optionally enter an expected checksum to compare it with the calculated value.

Understanding the CRC parameters

  • Width: the number of bits in the CRC register and final checksum.
  • Polynomial: the generator polynomial, entered in hexadecimal without its implicit leading term.
  • Initial value: the starting register value before processing the message.
  • RefIn: whether the bits of each input byte are processed in reverse order.
  • RefOut: whether the final CRC register is reflected before the final XOR.
  • XorOut: the value XORed with the final register to produce the result.

The polynomial alone does not fully define a CRC algorithm. Two implementations can use the same polynomial and still return different checksums because their initial values, reflection settings or final XOR values differ.

CRC polynomial examples

CRC variantPolynomialTypical use
CRC-8/SMBUS0x07SMBus and related embedded communication
CRC-16/CCITT-FALSE0x1021Communication protocols and data frames
CRC-16/MODBUS0x8005Modbus RTU communication
CRC-32/ISO-HDLC0x04C11DB7ZIP, PNG, Ethernet and gzip implementations
CRC-32C0x1EDC6F41Storage and communication systems using Castagnoli CRC

What does a CRC checksum tell you?

A matching CRC can help detect accidental corruption when the sender and receiver use the same CRC model and message bytes. The result depends on the exact bytes processed, including encoding, frame boundaries and any protocol-specific fields.

CRCs are not cryptographic signatures. An attacker who can change a message can usually recompute its CRC, so a CRC should not be used by itself to authenticate data or prevent deliberate tampering.

Frequently asked questions

What is a CRC polynomial calculator?

It calculates a cyclic redundancy check using a generator polynomial and other model parameters. The resulting checksum can be used to help detect accidental changes in data.

Why do two CRC calculators give different results?

They may use different CRC widths, initial values, polynomial representations, input or output reflection, final XOR values, or input bytes. Compare every parameter, not just the polynomial.

What is the difference between CRC-16 and CRC-32?

CRC-16 produces a 16-bit checksum, while CRC-32 produces a 32-bit checksum. They can use different generator polynomials and parameter settings, so their values are not interchangeable.

How do I test whether a CRC implementation is correct?

A common test is to calculate the checksum of the ASCII text 123456789 and compare it with the published check value for the exact CRC variant. For example, CRC-32/ISO-HDLC produces 0xCBF43926.

Can I enter raw hexadecimal data?

Yes. Select hexadecimal input and enter complete byte pairs, optionally separated by spaces, commas, colons, dashes or underscores. For example, 01 03 00 00 00 0A.

Is a CRC suitable for security or authentication?

No. CRC is intended for error detection, not cryptographic security. For message authentication or tamper detection, use an appropriate cryptographic mechanism such as a message authentication code or digital signature.

Related binary and number tools

Continue with these related Binarios.org tools for binary conversion, character encoding and other number representations.