Skip to main content
CRC Calc

CRC-8 / I-432-1

Width8-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0xA1

Similar CRC Algorithms

Result is calculated from the current input. Check is the published verification value for the standard input 123456789. Click another algorithm to view its detail page.

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 / I-432-1 (8-bit)
 * Poly: 0x07, Init: 0x00, XorOut: 0x55
 * 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 ^ 0x55;
}

About CRC-8/I-432-1

CRC-8/I-432-1 is historically known as CRC-8/ITU and is associated with ATM header error control.

CRC-8/I-432-1 is a 8-bit CRC model defined by polynomial 0x07, an initial register value of 0x00, and final XOR 0x55. It uses normal, non-reflected input and output processing.

Documented application context for this model includes ATM, Telecommunications, Header error control. The calculator above applies this exact parameter set to the current input; the published Check value below is instead the fixed verification result for ASCII 123456789.

Standard test vector

CRC implementations are commonly verified with the ASCII input 123456789.

Input format
ASCII
Input
123456789
Expected CRC
0xA1
Residue
0xAC

Model characteristics

A model is identified by its complete parameter set, not its polynomial alone.

Bit order
Normal
Register start
0x00
Final XOR
0x55
Published check
0xA1

Implementation checks for CRC-8/I-432-1

  • Use a 8-bit register and polynomial 0x07.
  • Initialize the register to 0x00 and use XorOut 0x55 exactly as listed; changing either value defines a different model.
  • Verify the implementation with ASCII “123456789”; the expected result is 0xA1.

Continue with the main calculator, browse the algorithm catalog, compare models in the Algorithm Reference section, or generate a lookup table.

Complete CRC-8/I-432-1 parameters

CRC parameter guide
ParameterValueMeaningReference
Width8 bitsCRC register and result widthRead guide
Poly0x07Generator polynomial without the leading termRead guide
Init0x00Initial CRC register valueRead guide
RefInNoReflect each input byte before processingRead guide
RefOutNoReflect the register before XOR OutRead guide
XorOut0x55Final value XORed with the CRC registerRead guide
Check0xA1CRC of ASCII “123456789”Read guide
Residue0xACExpected residue after appending a valid CRCRead guide
AliasesCRC-8/ITUATM HEC

Where CRC-8/I-432-1 is used

  • 01ATM
  • 02Telecommunications
  • 03Header error control

CRC-8/I-432-1 FAQ

What is the check value for CRC-8/I-432-1?

For the standard ASCII test input 123456789, the check value of CRC-8/I-432-1 is 0xA1.

What polynomial does CRC-8/I-432-1 use?

CRC-8/I-432-1 uses the 8-bit polynomial 0x07.

Does CRC-8/I-432-1 use reflected input and output?

For CRC-8/I-432-1, RefIn is No and RefOut is No.

What is CRC-8/I-432-1 commonly confused with?

CRC-8/SMBUS uses the same polynomial (0x07), which is the usual source of mix-ups — matching the polynomial alone does not reproduce CRC-8/I-432-1. The two models differ in final XOR value, so a port from one to the other needs those fields checked explicitly, not just the poly.