Productivity and Utilities

CRC Calculator with Many Algorithms

Enter text or hex bytes and choose an algorithm to get its checksum, byte order and parameters, next to every other variant.

Your numbers

For hex, write bytes such as 01 03 00 00 00 0A. Spaces, commas and 0x are ignored.

Result

CRC-16/MODBUS

0x4B37

9 bytes read. Sent low byte first on the wire

Decimal
19255
Bytes, most significant first
4B 37
Bytes, least significant first
37 4B
Width
16 bits
Polynomial
0x8005
Initial value
0xFFFF
Reflect input and output
Yes and Yes
Final XOR
0x0000
Check value for 123456789
0x4B37 (matches)

The same data under every algorithm

AlgorithmBitsResultCheck for 123456789
CRC-8/SMBUS80xF40xF4
CRC-8/CDMA200080xDA0xDA
CRC-8/DARC80x150x15
CRC-8/MAXIM-DOW80xA10xA1
CRC-8/ROHC80xD00xD0
CRC-8/WCDMA80x250x25
CRC-8/AUTOSAR80xDF0xDF
CRC-8/BLUETOOTH80x260x26
CRC-16/ARC160xBB3D0xBB3D
CRC-16/IBM-3740160x29B10x29B1
CRC-16/XMODEM160x31C30x31C3
CRC-16/KERMIT160x21890x2189
CRC-16/IBM-SDLC160x906E0x906E
CRC-16/MODBUS160x4B370x4B37
CRC-16/USB160xB4C80xB4C8
CRC-16/GENIBUS160xD64E0xD64E
CRC-16/DNP160xEA820xEA82
CRC-16/MAXIM-DOW160x44C20x44C2
CRC-16/UMTS160xFEE80xFEE8
CRC-16/DDS-110160x9ECF0x9ECF
CRC-16/EN-13757160xC2B70xC2B7
CRC-16/T10-DIF160xD0DB0xD0DB
CRC-16/TELEDISK160x0FB30x0FB3
CRC-16/CDMA2000160x4C060x4C06
CRC-16/MCRF4XX160x6F910x6F91
CRC-16/RIELLO160x63D00x63D0
CRC-16/TMS37157160x26B10x26B1
CRC-16/ISO-14443-3-A160xBF050xBF05
CRC-16/LJ1200160xBDF40xBDF4
CRC-32/ISO-HDLC320xCBF439260xCBF43926
CRC-32/BZIP2320xFC8919180xFC891918
CRC-32/ISCSI320xE30692830xE3069283
CRC-32/MPEG-2320x0376E6E70x0376E6E7
CRC-32/CKSUM320x765E76800x765E7680
CRC-32/JAMCRC320x340BC6D90x340BC6D9
CRC-32D320x873155760x87315576
CRC-32/AIXM320x3010BF7F0x3010BF7F
CRC-32/XFER320xBD0BE3380xBD0BE338
CRC-32/AUTOSAR320x1697D06A0x1697D06A
How this was calculated
  1. Start with the register set to the initial value 0xFFFF.
  2. For each byte (with its bits reversed first), XOR it into the top of the register, then shift left 8 times, XORing the polynomial 0x8005 whenever a 1 bit falls off the top.
  3. Reverse the bits of the register, then XOR with 0x0000 (no change).
  4. Algorithm names follow the public CRC catalog, where each name fixes all five settings. The check value in the table is what the text 123456789 must produce.
  • A CRC detects accidental changes in data. It is not a hash for security and it does not protect against someone changing data on purpose.

Calculated using SumPanda.com · https://sumpanda.com/crc-calculator-multi-algorithm/

Results are estimates for general information. Verify important figures before relying on them.

Next step

How to use the crc calculator with many algorithms

  1. Choose whether your input is text (read as UTF-8 bytes) or hex bytes, and enter the data.
  2. Choose the algorithm. The name fixes the width, polynomial, starting value, bit order and final XOR.
  3. Read the CRC in hex, decimal and in both byte orders, and check the check value line, which tests the algorithm on the text 123456789.
  4. Use the table to see the same data under every algorithm, which helps when a name is confusing.

Formula

register = initial value

for each byte: reverse its bits if the input is reflected, XOR it into the top of the register, shift left 8 times and XOR the polynomial after each 1 bit falls off the top

result = (reverse register if the output is reflected) XOR final value

This is the standard CRC model. Equivalently, the data is treated as a long binary number and divided by the polynomial, and the remainder is the CRC.

CRC-16/MODBUS on a request and the check text

The text 123456789 is the standard test input. Under CRC-16/MODBUS it gives 0x4B37, under CRC-16/XMODEM 0x31C3, under CRC-16/IBM-3740 0x29B1, and under CRC-32/ISO-HDLC 0xCBF43926. If your tool disagrees on this text, it is using different settings.

A Modbus request of the bytes 01 03 00 00 00 0A gives 0xCDC5. Modbus sends the low byte first, so the frame ends with C5 CD, which the page shows as the least significant byte order. Under CRC-8/SMBUS the same nine test characters give 0xF4, and under CRC-32/ISCSI (CRC-32C) 0xE3069283.

Why one name can mean different results

A CRC is defined by five settings besides the width: the polynomial, the starting value, whether input and output bits are reflected and the final XOR. Two algorithms with the same polynomial but different settings give different results. CRC-16/XMODEM and CRC-16/IBM-3740 share a polynomial, but one starts at 0x0000 and the other at 0xFFFF.

Older names are also inconsistent. "CRC-16" alone usually means CRC-16/ARC, "CCITT" has been used for both IBM-3740 and KERMIT, and X-25 is another name for IBM-SDLC. The page lists the catalog names with alternative names in the notes so you can match the one in your specification.

Where CRCs fit

CRCs catch accidental changes in data that travels or is stored: serial protocols, file formats, firmware images and network frames. They are fast and small, but they are not secure against deliberate changes. For that, use a hash such as those in the Hash Generator or a keyed hash from the HMAC Generator. For the common 32 bit checksums, the CRC32 Checksum Calculator is the quicker choice, and the Check Digit Validator covers check digits in numbers.

Assumptions and limits

  • Text is converted to UTF-8 bytes. Line breaks are normalized to a single line feed before computing.
  • Up to 200,000 bytes of data are accepted. Hex input ignores spaces, commas, colons, dashes and a 0x prefix.
  • The catalog covers CRC widths of 8, 16 and 32 bits with the names and settings of the public CRC catalog.
  • A CRC detects accidental errors only and is not a security measure.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

What is the check value?

It is the CRC of the ASCII text 123456789 under that algorithm. Reference lists publish it so you can confirm that an implementation uses the right settings. The page shows whether its own result matches.

Why do two tools give different CRC-16 results?

CRC-16 is a family, and tools may default to different members such as ARC, MODBUS or XMODEM. Pick the exact name from your device or protocol and compare check values.

In what order are CRC bytes sent?

It depends on the protocol. Modbus sends the low byte first. Many others send the high byte first. The page shows both orders so you can match the protocol.

Does CRC-32 here match the one in zip files?

Yes. CRC-32/ISO-HDLC is the CRC-32 used by zip, PNG, gzip and Ethernet. CRC-32/ISCSI is the Castagnoli variant, also called CRC-32C, which is a different polynomial.