Skip to main content
CRC Calc

CRC-8 Calculator

Standard test string

Result

0xF4

Algorithm Reference

Current: CRC-8 / SMBUS
20 matching algorithms

Result is calculated from the current input. Check is the published verification value for the standard input 123456789. RefIn and RefOut are separate input and output reflection settings. Click a row to apply that algorithm; on narrow screens, the chevron button at the end of a row reveals its full parameters.

CRC-8 / AUTOSAR8-bit0xDF
CRC-8 / BLUETOOTH8-bit0x26
CRC-8 / CDMA20008-bit0xDA
CRC-8 / DARC8-bit0x15
CRC-8 / DVB-S28-bit0xBC
CRC-8 / GSM-A8-bit0x37
CRC-8 / GSM-B8-bit0x94
CRC-8 / HITAG8-bit0xB4
CRC-8 / I-432-18-bit0xA1
CRC-8 / I-CODE8-bit0x7E
CRC-8 / LTE8-bit0xEA
CRC-8 / MAXIM-DOW8-bit0xA1
CRC-8 / MIFARE-MAD8-bit0x99
CRC-8 / NRSC-58-bit0xF7
CRC-8 / OPENSAFETY8-bit0x3E
CRC-8 / ROHC8-bit0xD0
CRC-8 / SAE-J18508-bit0x4B
CRC-8 / SMBUS8-bitCurrent0xF4
CRC-8 / TECH-32508-bit0x97
CRC-8 / WCDMA8-bit0x25

CRC Lookup Table

0x000x070x0E0x090x1C0x1B0x120x150x380x3F0x360x310x240x230x2A0x2D
0x700x770x7E0x790x6C0x6B0x620x650x480x4F0x460x410x540x530x5A0x5D
0xE00xE70xEE0xE90xFC0xFB0xF20xF50xD80xDF0xD60xD10xC40xC30xCA0xCD
0x900x970x9E0x990x8C0x8B0x820x850xA80xAF0xA60xA10xB40xB30xBA0xBD
0xC70xC00xC90xCE0xDB0xDC0xD50xD20xFF0xF80xF10xF60xE30xE40xED0xEA
0xB70xB00xB90xBE0xAB0xAC0xA50xA20x8F0x880x810x860x930x940x9D0x9A
0x270x200x290x2E0x3B0x3C0x350x320x1F0x180x110x160x030x040x0D0x0A
0x570x500x590x5E0x4B0x4C0x450x420x6F0x680x610x660x730x740x7D0x7A
0x890x8E0x870x800x950x920x9B0x9C0xB10xB60xBF0xB80xAD0xAA0xA30xA4
0xF90xFE0xF70xF00xE50xE20xEB0xEC0xC10xC60xCF0xC80xDD0xDA0xD30xD4
0x690x6E0x670x600x750x720x7B0x7C0x510x560x5F0x580x4D0x4A0x430x44
0x190x1E0x170x100x050x020x0B0x0C0x210x260x2F0x280x3D0x3A0x330x34
0x4E0x490x400x470x520x550x5C0x5B0x760x710x780x7F0x6A0x6D0x640x63
0x3E0x390x300x370x220x250x2C0x2B0x060x010x080x0F0x1A0x1D0x140x13
0xAE0xA90xA00xA70xB20xB50xBC0xBB0x960x910x980x9F0x8A0x8D0x840x83
0xDE0xD90xD00xD70xC20xC50xCC0xCB0xE60xE10xE80xEF0xFA0xFD0xF40xF3

CRC Source Code

/* 
 * Model: CRC-8 / SMBUS (8-bit)
 * Poly: 0x07, Init: 0x00, XorOut: 0x00
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint8_t crc_table[256] = {
  0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 
  0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 
  0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 
  0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 
  0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 
  0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 
  0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 
  0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, 
  0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 
  0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, 
  0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 
  0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A, 
  0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 
  0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A, 
  0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42, 
  0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, 
  0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 
  0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4, 
  0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 
  0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4, 
  0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 
  0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, 
  0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C, 
  0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34, 
  0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 
  0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, 
  0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 
  0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13, 
  0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 
  0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, 
  0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 
  0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3
};

uint8_t calculate_crc(const uint8_t *data, size_t length) {
    uint8_t crc = 0x00;
    for (size_t i = 0; i < length; i++) {
        #if 0
        uint8_t idx = (uint8_t)(crc ^ data[i]);
        crc = (crc >> 8) ^ crc_table[idx];
        #else
        uint8_t idx = (uint8_t)((crc >> 0) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0x00;
}

CRC Algorithm Identifier

Already know the CRC output for this data but not which algorithm produced it? Enter the known result below — every one of the 70 catalog algorithms is recalculated against the current input data and matched against it automatically.

Enter a known CRC value to search the catalog

All 70 algorithms are checked against the current input data.

CRC Patch Finder

Insert position
Search resultReady to search.

About the CRC-8 Calculator

This calculator loads with CRC-8/SMBUS (polynomial 0x07) selected — the model most often meant when documentation just says “CRC-8” without naming a specific variant, since it is the SMBus packet error code and one of the simplest published 8-bit models. Switch the preset above to load any of the other 19 CRC-8 variants in the catalog, including CRC-8/AUTOSAR, CRC-8/BLUETOOTH, CRC-8/MAXIM-DOW, and CRC-8/SAE-J1850 — the calculator, lookup table, and source code generator below update immediately to match.

Every CRC-8 model differs in polynomial, initial value, reflection, or final XOR, so results are not interchangeable between variants even though all of them produce an 8-bit checksum — check the parameter panel for the currently selected preset, or browse every CRC-8 variant in the catalog below.

Other CRC-8 calculators

19 more published CRC-8 models in the catalog — each opens in a calculator preloaded with its own parameters.

Browse all algorithms
CRC-8/DARCDARC CRC-8
View
Poly
0x39
Init
0x00
RefIn
Yes
RefOut
Yes
XorOut
0x00
Check
0x15
CRC-8/GSM-AGSM CRC-8 A
View
Poly
0x1D
Init
0x00
RefIn
No
RefOut
No
XorOut
0x00
Check
0x37
CRC-8/GSM-BGSM CRC-8 B
View
Poly
0x49
Init
0x00
RefIn
No
RefOut
No
XorOut
0xFF
Check
0x94
CRC-8/HITAGHITAG CRC-8
View
Poly
0x1D
Init
0xFF
RefIn
No
RefOut
No
XorOut
0x00
Check
0xB4
CRC-8/I-432-1CRC-8/ITU · ATM HEC
View
Poly
0x07
Init
0x00
RefIn
No
RefOut
No
XorOut
0x55
Check
0xA1
CRC-8/LTELTE CRC-8
View
Poly
0x9B
Init
0x00
RefIn
No
RefOut
No
XorOut
0x00
Check
0xEA
CRC-8/MAXIM-DOWCRC-8/MAXIM · DALLAS CRC8 · DOW-CRC
View
Poly
0x31
Init
0x00
RefIn
Yes
RefOut
Yes
XorOut
0x00
Check
0xA1
CRC-8/ROHCROHC CRC-8
View
Poly
0x07
Init
0xFF
RefIn
Yes
RefOut
Yes
XorOut
0x00
Check
0xD0
CRC-8/WCDMAWCDMA CRC-8
View
Poly
0x9B
Init
0x00
RefIn
Yes
RefOut
Yes
XorOut
0x00
Check
0x25

Looking for a different width? Browse the full 70-algorithm catalog.