CRC-16 Checksum Calculator

Compute the 16-bit CRC-16/CCITT checksum

Ad placeholder (leaderboard)

This tool computes a 16-bit CRC checksum of any text or raw hex bytes and shows it in hexadecimal and decimal, updating live. CRC-16 is the workhorse of serial and fieldbus protocols, offering much stronger accidental-error detection than an 8-bit CRC while staying compact.

How it works

CRC-16 computes the remainder of the input, viewed as a polynomial over GF(2), divided by the generator polynomial 0x1021 (x^16 + x^12 + x^5 + 1). This implementation uses the CRC-16/CCITT-FALSE configuration: a 256-entry table is built from the polynomial in the most-significant-bit-first direction, the running value is initialised to 0xFFFF, and for each byte the high byte of the CRC is XORed with the input to index the table — crc = (crc << 8) XOR table[(crc >> 8) XOR byte]. There is no reflection and no final XOR.

Example and notes

The canonical CRC check string 123456789 produces 0x29B1 with CRC-16/CCITT-FALSE, which you can use to verify the calculator. If you need MODBUS (0xA001 reflected, init 0xFFFF) or XMODEM (init 0x0000) instead, the result will differ — confirm which variant your protocol requires before comparing values.

CRC-16 catches accidental corruption only — it is not cryptographic and is easy to forge. Everything is computed in pure JavaScript in your browser; nothing is uploaded.

Ad placeholder (rectangle)