Skip to main content
CRC Calc

CRC-32 / MEF

Width32-bitRefInYesRefOutYes

Need custom parameters? Open in full calculator

Standard test string

Result

0xD2C22F51

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

0x000000000x9695C4CA0xFB4839C90x6DDDFD030x20F3C3CF0xB66607050xDBBBFA060x4D2E3ECC0x41E7879E0xD77243540xBAAFBE570x2C3A7A9D0x611444510xF781809B0x9A5C7D980x0CC9B952
0x83CF0F3C0x155ACBF60x788736F50xEE12F23F0xA33CCCF30x35A908390x5874F53A0xCEE131F00xC22888A20x54BD4C680x3960B16B0xAFF575A10xE2DB4B6D0x744E8FA70x199372A40x8F06B66E
0xD1FDAE250x47686AEF0x2AB597EC0xBC2053260xF10E6DEA0x679BA9200x0A4654230x9CD390E90x901A29BB0x068FED710x6B5210720xFDC7D4B80xB0E9EA740x267C2EBE0x4BA1D3BD0xDD341777
0x5232A1190xC4A765D30xA97A98D00x3FEF5C1A0x72C162D60xE454A61C0x89895B1F0x1F1C9FD50x13D526870x8540E24D0xE89D1F4E0x7E08DB840x3326E5480xA5B321820xC86EDC810x5EFB184B
0x7598EC170xE30D28DD0x8ED0D5DE0x184511140x556B2FD80xC3FEEB120xAE2316110x38B6D2DB0x347F6B890xA2EAAF430xCF3752400x59A2968A0x148CA8460x82196C8C0xEFC4918F0x79515545
0xF657E32B0x60C227E10x0D1FDAE20x9B8A1E280xD6A420E40x4031E42E0x2DEC192D0xBB79DDE70xB7B064B50x2125A07F0x4CF85D7C0xDA6D99B60x9743A77A0x01D663B00x6C0B9EB30xFA9E5A79
0xA46542320x32F086F80x5F2D7BFB0xC9B8BF310x849681FD0x120345370x7FDEB8340xE94B7CFE0xE582C5AC0x731701660x1ECAFC650x885F38AF0xC57106630x53E4C2A90x3E393FAA0xA8ACFB60
0x27AA4D0E0xB13F89C40xDCE274C70x4A77B00D0x07598EC10x91CC4A0B0xFC11B7080x6A8473C20x664DCA900xF0D80E5A0x9D05F3590x0B9037930x46BE095F0xD02BCD950xBDF630960x2B63F45C
0xEB31D82E0x7DA41CE40x1079E1E70x86EC252D0xCBC21BE10x5D57DF2B0x308A22280xA61FE6E20xAAD65FB00x3C439B7A0x519E66790xC70BA2B30x8A259C7F0x1CB058B50x716DA5B60xE7F8617C
0x68FED7120xFE6B13D80x93B6EEDB0x05232A110x480D14DD0xDE98D0170xB3452D140x25D0E9DE0x2919508C0xBF8C94460xD25169450x44C4AD8F0x09EA93430x9F7F57890xF2A2AA8A0x64376E40
0x3ACC760B0xAC59B2C10xC1844FC20x57118B080x1A3FB5C40x8CAA710E0xE1778C0D0x77E248C70x7B2BF1950xEDBE355F0x8063C85C0x16F60C960x5BD8325A0xCD4DF6900xA0900B930x3605CF59
0xB90379370x2F96BDFD0x424B40FE0xD4DE84340x99F0BAF80x0F657E320x62B883310xF42D47FB0xF8E4FEA90x6E713A630x03ACC7600x953903AA0xD8173D660x4E82F9AC0x235F04AF0xB5CAC065
0x9EA934390x083CF0F30x65E10DF00xF374C93A0xBE5AF7F60x28CF333C0x4512CE3F0xD3870AF50xDF4EB3A70x49DB776D0x24068A6E0xB2934EA40xFFBD70680x6928B4A20x04F549A10x92608D6B
0x1D663B050x8BF3FFCF0xE62E02CC0x70BBC6060x3D95F8CA0xAB003C000xC6DDC1030x504805C90x5C81BC9B0xCA1478510xA7C985520x315C41980x7C727F540xEAE7BB9E0x873A469D0x11AF8257
0x4F549A1C0xD9C15ED60xB41CA3D50x2289671F0x6FA759D30xF9329D190x94EF601A0x027AA4D00x0EB31D820x9826D9480xF5FB244B0x636EE0810x2E40DE4D0xB8D51A870xD508E7840x439D234E
0xCC9B95200x5A0E51EA0x37D3ACE90xA14668230xEC6856EF0x7AFD92250x17206F260x81B5ABEC0x8D7C12BE0x1BE9D6740x76342B770xE0A1EFBD0xAD8FD1710x3B1A15BB0x56C7E8B80xC0522C72

CRC Source Code

/* 
 * Model: CRC-32 / MEF (32-bit)
 * Poly: 0x741B8CD7, 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, 0x9695C4CA, 0xFB4839C9, 0x6DDDFD03, 0x20F3C3CF, 0xB6660705, 0xDBBBFA06, 0x4D2E3ECC, 
  0x41E7879E, 0xD7724354, 0xBAAFBE57, 0x2C3A7A9D, 0x61144451, 0xF781809B, 0x9A5C7D98, 0x0CC9B952, 
  0x83CF0F3C, 0x155ACBF6, 0x788736F5, 0xEE12F23F, 0xA33CCCF3, 0x35A90839, 0x5874F53A, 0xCEE131F0, 
  0xC22888A2, 0x54BD4C68, 0x3960B16B, 0xAFF575A1, 0xE2DB4B6D, 0x744E8FA7, 0x199372A4, 0x8F06B66E, 
  0xD1FDAE25, 0x47686AEF, 0x2AB597EC, 0xBC205326, 0xF10E6DEA, 0x679BA920, 0x0A465423, 0x9CD390E9, 
  0x901A29BB, 0x068FED71, 0x6B521072, 0xFDC7D4B8, 0xB0E9EA74, 0x267C2EBE, 0x4BA1D3BD, 0xDD341777, 
  0x5232A119, 0xC4A765D3, 0xA97A98D0, 0x3FEF5C1A, 0x72C162D6, 0xE454A61C, 0x89895B1F, 0x1F1C9FD5, 
  0x13D52687, 0x8540E24D, 0xE89D1F4E, 0x7E08DB84, 0x3326E548, 0xA5B32182, 0xC86EDC81, 0x5EFB184B, 
  0x7598EC17, 0xE30D28DD, 0x8ED0D5DE, 0x18451114, 0x556B2FD8, 0xC3FEEB12, 0xAE231611, 0x38B6D2DB, 
  0x347F6B89, 0xA2EAAF43, 0xCF375240, 0x59A2968A, 0x148CA846, 0x82196C8C, 0xEFC4918F, 0x79515545, 
  0xF657E32B, 0x60C227E1, 0x0D1FDAE2, 0x9B8A1E28, 0xD6A420E4, 0x4031E42E, 0x2DEC192D, 0xBB79DDE7, 
  0xB7B064B5, 0x2125A07F, 0x4CF85D7C, 0xDA6D99B6, 0x9743A77A, 0x01D663B0, 0x6C0B9EB3, 0xFA9E5A79, 
  0xA4654232, 0x32F086F8, 0x5F2D7BFB, 0xC9B8BF31, 0x849681FD, 0x12034537, 0x7FDEB834, 0xE94B7CFE, 
  0xE582C5AC, 0x73170166, 0x1ECAFC65, 0x885F38AF, 0xC5710663, 0x53E4C2A9, 0x3E393FAA, 0xA8ACFB60, 
  0x27AA4D0E, 0xB13F89C4, 0xDCE274C7, 0x4A77B00D, 0x07598EC1, 0x91CC4A0B, 0xFC11B708, 0x6A8473C2, 
  0x664DCA90, 0xF0D80E5A, 0x9D05F359, 0x0B903793, 0x46BE095F, 0xD02BCD95, 0xBDF63096, 0x2B63F45C, 
  0xEB31D82E, 0x7DA41CE4, 0x1079E1E7, 0x86EC252D, 0xCBC21BE1, 0x5D57DF2B, 0x308A2228, 0xA61FE6E2, 
  0xAAD65FB0, 0x3C439B7A, 0x519E6679, 0xC70BA2B3, 0x8A259C7F, 0x1CB058B5, 0x716DA5B6, 0xE7F8617C, 
  0x68FED712, 0xFE6B13D8, 0x93B6EEDB, 0x05232A11, 0x480D14DD, 0xDE98D017, 0xB3452D14, 0x25D0E9DE, 
  0x2919508C, 0xBF8C9446, 0xD2516945, 0x44C4AD8F, 0x09EA9343, 0x9F7F5789, 0xF2A2AA8A, 0x64376E40, 
  0x3ACC760B, 0xAC59B2C1, 0xC1844FC2, 0x57118B08, 0x1A3FB5C4, 0x8CAA710E, 0xE1778C0D, 0x77E248C7, 
  0x7B2BF195, 0xEDBE355F, 0x8063C85C, 0x16F60C96, 0x5BD8325A, 0xCD4DF690, 0xA0900B93, 0x3605CF59, 
  0xB9037937, 0x2F96BDFD, 0x424B40FE, 0xD4DE8434, 0x99F0BAF8, 0x0F657E32, 0x62B88331, 0xF42D47FB, 
  0xF8E4FEA9, 0x6E713A63, 0x03ACC760, 0x953903AA, 0xD8173D66, 0x4E82F9AC, 0x235F04AF, 0xB5CAC065, 
  0x9EA93439, 0x083CF0F3, 0x65E10DF0, 0xF374C93A, 0xBE5AF7F6, 0x28CF333C, 0x4512CE3F, 0xD3870AF5, 
  0xDF4EB3A7, 0x49DB776D, 0x24068A6E, 0xB2934EA4, 0xFFBD7068, 0x6928B4A2, 0x04F549A1, 0x92608D6B, 
  0x1D663B05, 0x8BF3FFCF, 0xE62E02CC, 0x70BBC606, 0x3D95F8CA, 0xAB003C00, 0xC6DDC103, 0x504805C9, 
  0x5C81BC9B, 0xCA147851, 0xA7C98552, 0x315C4198, 0x7C727F54, 0xEAE7BB9E, 0x873A469D, 0x11AF8257, 
  0x4F549A1C, 0xD9C15ED6, 0xB41CA3D5, 0x2289671F, 0x6FA759D3, 0xF9329D19, 0x94EF601A, 0x027AA4D0, 
  0x0EB31D82, 0x9826D948, 0xF5FB244B, 0x636EE081, 0x2E40DE4D, 0xB8D51A87, 0xD508E784, 0x439D234E, 
  0xCC9B9520, 0x5A0E51EA, 0x37D3ACE9, 0xA1466823, 0xEC6856EF, 0x7AFD9225, 0x17206F26, 0x81B5ABEC, 
  0x8D7C12BE, 0x1BE9D674, 0x76342B77, 0xE0A1EFBD, 0xAD8FD171, 0x3B1A15BB, 0x56C7E8B8, 0xC0522C72
};

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/MEF

CRC-32/MEF uses the Koopman polynomial in Metro Ethernet Forum specifications.

CRC-32/MEF is a 32-bit CRC model defined by polynomial 0x741B8CD7, 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 Metro Ethernet, MEF, Network protocols. 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
0xD2C22F51
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
0xD2C22F51

Implementation checks for CRC-32/MEF

  • Use a 32-bit register and polynomial 0x741B8CD7.
  • 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 0xD2C22F51.

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

Complete CRC-32/MEF parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0x741B8CD7Generator 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
Check0xD2C22F51CRC of ASCII “123456789”Read guide
Residue0x00000000Expected residue after appending a valid CRCRead guide
AliasesMEF CRC-32

Where CRC-32/MEF is used

  • 01Metro Ethernet
  • 02MEF
  • 03Network protocols

CRC-32/MEF FAQ

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

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

What polynomial does CRC-32/MEF use?

CRC-32/MEF uses the 32-bit polynomial 0x741B8CD7.

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

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

What is CRC-32/MEF commonly confused with?

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