Skip to main content
CRC Calc

CRC-32 / XFER

Width32-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0xBD0BE338

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

0x000000000x000000AF0x0000015E0x000001F10x000002BC0x000002130x000003E20x0000034D0x000005780x000005D70x000004260x000004890x000007C40x0000076B0x0000069A0x00000635
0x00000AF00x00000A5F0x00000BAE0x00000B010x0000084C0x000008E30x000009120x000009BD0x00000F880x00000F270x00000ED60x00000E790x00000D340x00000D9B0x00000C6A0x00000CC5
0x000015E00x0000154F0x000014BE0x000014110x0000175C0x000017F30x000016020x000016AD0x000010980x000010370x000011C60x000011690x000012240x0000128B0x0000137A0x000013D5
0x00001F100x00001FBF0x00001E4E0x00001EE10x00001DAC0x00001D030x00001CF20x00001C5D0x00001A680x00001AC70x00001B360x00001B990x000018D40x0000187B0x0000198A0x00001925
0x00002BC00x00002B6F0x00002A9E0x00002A310x0000297C0x000029D30x000028220x0000288D0x00002EB80x00002E170x00002FE60x00002F490x00002C040x00002CAB0x00002D5A0x00002DF5
0x000021300x0000219F0x0000206E0x000020C10x0000238C0x000023230x000022D20x0000227D0x000024480x000024E70x000025160x000025B90x000026F40x0000265B0x000027AA0x00002705
0x00003E200x00003E8F0x00003F7E0x00003FD10x00003C9C0x00003C330x00003DC20x00003D6D0x00003B580x00003BF70x00003A060x00003AA90x000039E40x0000394B0x000038BA0x00003815
0x000034D00x0000347F0x0000358E0x000035210x0000366C0x000036C30x000037320x0000379D0x000031A80x000031070x000030F60x000030590x000033140x000033BB0x0000324A0x000032E5
0x000057800x0000572F0x000056DE0x000056710x0000553C0x000055930x000054620x000054CD0x000052F80x000052570x000053A60x000053090x000050440x000050EB0x0000511A0x000051B5
0x00005D700x00005DDF0x00005C2E0x00005C810x00005FCC0x00005F630x00005E920x00005E3D0x000058080x000058A70x000059560x000059F90x00005AB40x00005A1B0x00005BEA0x00005B45
0x000042600x000042CF0x0000433E0x000043910x000040DC0x000040730x000041820x0000412D0x000047180x000047B70x000046460x000046E90x000045A40x0000450B0x000044FA0x00004455
0x000048900x0000483F0x000049CE0x000049610x00004A2C0x00004A830x00004B720x00004BDD0x00004DE80x00004D470x00004CB60x00004C190x00004F540x00004FFB0x00004E0A0x00004EA5
0x00007C400x00007CEF0x00007D1E0x00007DB10x00007EFC0x00007E530x00007FA20x00007F0D0x000079380x000079970x000078660x000078C90x00007B840x00007B2B0x00007ADA0x00007A75
0x000076B00x0000761F0x000077EE0x000077410x0000740C0x000074A30x000075520x000075FD0x000073C80x000073670x000072960x000072390x000071740x000071DB0x0000702A0x00007085
0x000069A00x0000690F0x000068FE0x000068510x00006B1C0x00006BB30x00006A420x00006AED0x00006CD80x00006C770x00006D860x00006D290x00006E640x00006ECB0x00006F3A0x00006F95
0x000063500x000063FF0x0000620E0x000062A10x000061EC0x000061430x000060B20x0000601D0x000066280x000066870x000067760x000067D90x000064940x0000643B0x000065CA0x00006565

CRC Source Code

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

const uint32_t crc_table[256] = {
  0x00000000, 0x000000AF, 0x0000015E, 0x000001F1, 0x000002BC, 0x00000213, 0x000003E2, 0x0000034D, 
  0x00000578, 0x000005D7, 0x00000426, 0x00000489, 0x000007C4, 0x0000076B, 0x0000069A, 0x00000635, 
  0x00000AF0, 0x00000A5F, 0x00000BAE, 0x00000B01, 0x0000084C, 0x000008E3, 0x00000912, 0x000009BD, 
  0x00000F88, 0x00000F27, 0x00000ED6, 0x00000E79, 0x00000D34, 0x00000D9B, 0x00000C6A, 0x00000CC5, 
  0x000015E0, 0x0000154F, 0x000014BE, 0x00001411, 0x0000175C, 0x000017F3, 0x00001602, 0x000016AD, 
  0x00001098, 0x00001037, 0x000011C6, 0x00001169, 0x00001224, 0x0000128B, 0x0000137A, 0x000013D5, 
  0x00001F10, 0x00001FBF, 0x00001E4E, 0x00001EE1, 0x00001DAC, 0x00001D03, 0x00001CF2, 0x00001C5D, 
  0x00001A68, 0x00001AC7, 0x00001B36, 0x00001B99, 0x000018D4, 0x0000187B, 0x0000198A, 0x00001925, 
  0x00002BC0, 0x00002B6F, 0x00002A9E, 0x00002A31, 0x0000297C, 0x000029D3, 0x00002822, 0x0000288D, 
  0x00002EB8, 0x00002E17, 0x00002FE6, 0x00002F49, 0x00002C04, 0x00002CAB, 0x00002D5A, 0x00002DF5, 
  0x00002130, 0x0000219F, 0x0000206E, 0x000020C1, 0x0000238C, 0x00002323, 0x000022D2, 0x0000227D, 
  0x00002448, 0x000024E7, 0x00002516, 0x000025B9, 0x000026F4, 0x0000265B, 0x000027AA, 0x00002705, 
  0x00003E20, 0x00003E8F, 0x00003F7E, 0x00003FD1, 0x00003C9C, 0x00003C33, 0x00003DC2, 0x00003D6D, 
  0x00003B58, 0x00003BF7, 0x00003A06, 0x00003AA9, 0x000039E4, 0x0000394B, 0x000038BA, 0x00003815, 
  0x000034D0, 0x0000347F, 0x0000358E, 0x00003521, 0x0000366C, 0x000036C3, 0x00003732, 0x0000379D, 
  0x000031A8, 0x00003107, 0x000030F6, 0x00003059, 0x00003314, 0x000033BB, 0x0000324A, 0x000032E5, 
  0x00005780, 0x0000572F, 0x000056DE, 0x00005671, 0x0000553C, 0x00005593, 0x00005462, 0x000054CD, 
  0x000052F8, 0x00005257, 0x000053A6, 0x00005309, 0x00005044, 0x000050EB, 0x0000511A, 0x000051B5, 
  0x00005D70, 0x00005DDF, 0x00005C2E, 0x00005C81, 0x00005FCC, 0x00005F63, 0x00005E92, 0x00005E3D, 
  0x00005808, 0x000058A7, 0x00005956, 0x000059F9, 0x00005AB4, 0x00005A1B, 0x00005BEA, 0x00005B45, 
  0x00004260, 0x000042CF, 0x0000433E, 0x00004391, 0x000040DC, 0x00004073, 0x00004182, 0x0000412D, 
  0x00004718, 0x000047B7, 0x00004646, 0x000046E9, 0x000045A4, 0x0000450B, 0x000044FA, 0x00004455, 
  0x00004890, 0x0000483F, 0x000049CE, 0x00004961, 0x00004A2C, 0x00004A83, 0x00004B72, 0x00004BDD, 
  0x00004DE8, 0x00004D47, 0x00004CB6, 0x00004C19, 0x00004F54, 0x00004FFB, 0x00004E0A, 0x00004EA5, 
  0x00007C40, 0x00007CEF, 0x00007D1E, 0x00007DB1, 0x00007EFC, 0x00007E53, 0x00007FA2, 0x00007F0D, 
  0x00007938, 0x00007997, 0x00007866, 0x000078C9, 0x00007B84, 0x00007B2B, 0x00007ADA, 0x00007A75, 
  0x000076B0, 0x0000761F, 0x000077EE, 0x00007741, 0x0000740C, 0x000074A3, 0x00007552, 0x000075FD, 
  0x000073C8, 0x00007367, 0x00007296, 0x00007239, 0x00007174, 0x000071DB, 0x0000702A, 0x00007085, 
  0x000069A0, 0x0000690F, 0x000068FE, 0x00006851, 0x00006B1C, 0x00006BB3, 0x00006A42, 0x00006AED, 
  0x00006CD8, 0x00006C77, 0x00006D86, 0x00006D29, 0x00006E64, 0x00006ECB, 0x00006F3A, 0x00006F95, 
  0x00006350, 0x000063FF, 0x0000620E, 0x000062A1, 0x000061EC, 0x00006143, 0x000060B2, 0x0000601D, 
  0x00006628, 0x00006687, 0x00006776, 0x000067D9, 0x00006494, 0x0000643B, 0x000065CA, 0x00006565
};

uint32_t calculate_crc(const uint8_t *data, size_t length) {
    uint32_t crc = 0x00000000;
    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 >> 24) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0x00000000;
}

About CRC-32/XFER

CRC-32/XFER is a historical non-reflected CRC-32 model.

CRC-32/XFER is a 32-bit CRC model defined by polynomial 0x000000AF, an initial register value of 0x00000000, and final XOR 0x00000000. It uses normal, non-reflected input and output processing.

Documented application context for this model includes XFER, Legacy protocols, Data transfer. 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
0xBD0BE338
Residue
0x00000000

Model characteristics

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

Bit order
Normal
Register start
0x00000000
Final XOR
0x00000000
Published check
0xBD0BE338

Implementation checks for CRC-32/XFER

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

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

Complete CRC-32/XFER parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0x000000AFGenerator polynomial without the leading termRead guide
Init0x00000000Initial CRC register valueRead guide
RefInNoReflect each input byte before processingRead guide
RefOutNoReflect the register before XOR OutRead guide
XorOut0x00000000Final value XORed with the CRC registerRead guide
Check0xBD0BE338CRC of ASCII “123456789”Read guide
Residue0x00000000Expected residue after appending a valid CRCRead guide
AliasesXFER CRC-32

Where CRC-32/XFER is used

  • 01XFER
  • 02Legacy protocols
  • 03Data transfer

CRC-32/XFER FAQ

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

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

What polynomial does CRC-32/XFER use?

CRC-32/XFER uses the 32-bit polynomial 0x000000AF.

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

For CRC-32/XFER, RefIn is No and RefOut is No.

What is CRC-32/XFER commonly confused with?

The closest published model by parameter overlap is CRC-32/AIXM, differing from CRC-32/XFER in polynomial.