Skip to main content
CRC Calc

CRC-32 / JAMCRC

Width32-bitRefInYesRefOutYes

Need custom parameters? Open in full calculator

Standard test string

Result

0x340BC6D9

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

0x000000000x770730960xEE0E612C0x990951BA0x076DC4190x706AF48F0xE963A5350x9E6495A30x0EDB88320x79DCB8A40xE0D5E91E0x97D2D9880x09B64C2B0x7EB17CBD0xE7B82D070x90BF1D91
0x1DB710640x6AB020F20xF3B971480x84BE41DE0x1ADAD47D0x6DDDE4EB0xF4D4B5510x83D385C70x136C98560x646BA8C00xFD62F97A0x8A65C9EC0x14015C4F0x63066CD90xFA0F3D630x8D080DF5
0x3B6E20C80x4C69105E0xD56041E40xA26771720x3C03E4D10x4B04D4470xD20D85FD0xA50AB56B0x35B5A8FA0x42B2986C0xDBBBC9D60xACBCF9400x32D86CE30x45DF5C750xDCD60DCF0xABD13D59
0x26D930AC0x51DE003A0xC8D751800xBFD061160x21B4F4B50x56B3C4230xCFBA95990xB8BDA50F0x2802B89E0x5F0588080xC60CD9B20xB10BE9240x2F6F7C870x58684C110xC1611DAB0xB6662D3D
0x76DC41900x01DB71060x98D220BC0xEFD5102A0x71B185890x06B6B51F0x9FBFE4A50xE8B8D4330x7807C9A20x0F00F9340x9609A88E0xE10E98180x7F6A0DBB0x086D3D2D0x91646C970xE6635C01
0x6B6B51F40x1C6C61620x856530D80xF262004E0x6C0695ED0x1B01A57B0x8208F4C10xF50FC4570x65B0D9C60x12B7E9500x8BBEB8EA0xFCB9887C0x62DD1DDF0x15DA2D490x8CD37CF30xFBD44C65
0x4DB261580x3AB551CE0xA3BC00740xD4BB30E20x4ADFA5410x3DD895D70xA4D1C46D0xD3D6F4FB0x4369E96A0x346ED9FC0xAD6788460xDA60B8D00x44042D730x33031DE50xAA0A4C5F0xDD0D7CC9
0x5005713C0x270241AA0xBE0B10100xC90C20860x5768B5250x206F85B30xB966D4090xCE61E49F0x5EDEF90E0x29D9C9980xB0D098220xC7D7A8B40x59B33D170x2EB40D810xB7BD5C3B0xC0BA6CAD
0xEDB883200x9ABFB3B60x03B6E20C0x74B1D29A0xEAD547390x9DD277AF0x04DB26150x73DC16830xE3630B120x94643B840x0D6D6A3E0x7A6A5AA80xE40ECF0B0x9309FF9D0x0A00AE270x7D079EB1
0xF00F93440x8708A3D20x1E01F2680x6906C2FE0xF762575D0x806567CB0x196C36710x6E6B06E70xFED41B760x89D32BE00x10DA7A5A0x67DD4ACC0xF9B9DF6F0x8EBEEFF90x17B7BE430x60B08ED5
0xD6D6A3E80xA1D1937E0x38D8C2C40x4FDFF2520xD1BB67F10xA6BC57670x3FB506DD0x48B2364B0xD80D2BDA0xAF0A1B4C0x36034AF60x41047A600xDF60EFC30xA867DF550x316E8EEF0x4669BE79
0xCB61B38C0xBC66831A0x256FD2A00x5268E2360xCC0C77950xBB0B47030x220216B90x5505262F0xC5BA3BBE0xB2BD0B280x2BB45A920x5CB36A040xC2D7FFA70xB5D0CF310x2CD99E8B0x5BDEAE1D
0x9B64C2B00xEC63F2260x756AA39C0x026D930A0x9C0906A90xEB0E363F0x720767850x050057130x95BF4A820xE2B87A140x7BB12BAE0x0CB61B380x92D28E9B0xE5D5BE0D0x7CDCEFB70x0BDBDF21
0x86D3D2D40xF1D4E2420x68DDB3F80x1FDA836E0x81BE16CD0xF6B9265B0x6FB077E10x18B747770x88085AE60xFF0F6A700x66063BCA0x11010B5C0x8F659EFF0xF862AE690x616BFFD30x166CCF45
0xA00AE2780xD70DD2EE0x4E0483540x3903B3C20xA76726610xD06016F70x4969474D0x3E6E77DB0xAED16A4A0xD9D65ADC0x40DF0B660x37D83BF00xA9BCAE530xDEBB9EC50x47B2CF7F0x30B5FFE9
0xBDBDF21C0xCABAC28A0x53B393300x24B4A3A60xBAD036050xCDD706930x54DE57290x23D967BF0xB3667A2E0xC4614AB80x5D681B020x2A6F2B940xB40BBE370xC30C8EA10x5A05DF1B0x2D02EF8D

CRC Source Code

/* 
 * Model: CRC-32 / JAMCRC (32-bit)
 * Poly: 0x04C11DB7, Init: 0xFFFFFFFF, XorOut: 0x00000000
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint32_t crc_table[256] = {
  0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 
  0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 
  0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 
  0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 
  0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 
  0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 
  0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 
  0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 
  0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 
  0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 
  0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 
  0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 
  0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 
  0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 
  0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 
  0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 
  0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 
  0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 
  0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 
  0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 
  0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 
  0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 
  0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 
  0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 
  0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 
  0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 
  0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 
  0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 
  0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 
  0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 
  0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 
  0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
};

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

About CRC-32/JAMCRC

CRC-32/JAMCRC is the non-complemented form of the common reflected CRC-32 model.

CRC-32/JAMCRC is a 32-bit CRC model defined by polynomial 0x04C11DB7, an initial register value of 0xFFFFFFFF, and final XOR 0x00000000. It processes reflected input bytes and reports a reflected output.

Documented application context for this model includes JAM STAPL, Embedded programming, File validation. 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
0x340BC6D9
Residue
0x00000000

Model characteristics

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

Bit order
Reflected
Register start
0xFFFFFFFF
Final XOR
0x00000000
Published check
0x340BC6D9

Implementation checks for CRC-32/JAMCRC

  • Use a 32-bit register and polynomial 0x04C11DB7.
  • Initialize the register to 0xFFFFFFFF and use XorOut 0x00000000 exactly as listed; changing either value defines a different model.
  • Verify the implementation with ASCII “123456789”; the expected result is 0x340BC6D9.

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

Complete CRC-32/JAMCRC parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0x04C11DB7Generator polynomial without the leading termRead guide
Init0xFFFFFFFFInitial CRC register valueRead guide
RefInYesReflect each input byte before processingRead guide
RefOutYesReflect the register before XOR OutRead guide
XorOut0x00000000Final value XORed with the CRC registerRead guide
Check0x340BC6D9CRC of ASCII “123456789”Read guide
Residue0x00000000Expected residue after appending a valid CRCRead guide
AliasesJAM CRC-32

Where CRC-32/JAMCRC is used

  • 01JAM STAPL
  • 02Embedded programming
  • 03File validation

CRC-32/JAMCRC FAQ

What is the check value for CRC-32/JAMCRC?

For the standard ASCII test input 123456789, the check value of CRC-32/JAMCRC is 0x340BC6D9.

What polynomial does CRC-32/JAMCRC use?

CRC-32/JAMCRC uses the 32-bit polynomial 0x04C11DB7.

Does CRC-32/JAMCRC use reflected input and output?

For CRC-32/JAMCRC, RefIn is Yes and RefOut is Yes.

What is CRC-32/JAMCRC commonly confused with?

CRC-32/ISO-HDLC uses the same polynomial (0x04C11DB7), which is the usual source of mix-ups — matching the polynomial alone does not reproduce CRC-32/JAMCRC. 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.