Skip to main content
CRC Calc

CRC-32 / CD-ROM-EDC

Width32-bitRefInYesRefOutYes

Need custom parameters? Open in full calculator

Standard test string

Result

0x6EC2EDC4

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

0x000000000x909101010x912102010x01B003000x924104010x02D005000x036006000x93F107010x948108010x041009000x05A00A000x95310B010x06C00C000x96510D010x97E10E010x07700F00
0x990110010x099011000x082012000x98B113010x0B4014000x9BD115010x9A6116010x0AF017000x0D8018000x9D1119010x9CA11A010x0C301B000x9FC11C010x0F501D000x0EE01E000x9E711F01
0x820120010x129021000x132022000x83B123010x104024000x80D125010x816126010x11F027000x168028000x861129010x87A12A010x17302B000x84C12C010x14502D000x15E02E000x85712F01
0x1B0030000x8B9131010x8A2132010x1AB033000x894134010x19D035000x186036000x88F137010x8F8138010x1F1039000x1EA03A000x8E313B010x1DC03C000x8D513D010x8CE13E010x1C703F00
0xB40140010x249041000x252042000xB5B143010x264044000xB6D145010xB76146010x27F047000x208048000xB01149010xB1A14A010x21304B000xB2C14C010x22504D000x23E04E000xB3714F01
0x2D0050000xBD9151010xBC2152010x2CB053000xBF4154010x2FD055000x2E6056000xBEF157010xB98158010x291059000x28A05A000xB8315B010x2BC05C000xBB515D010xBAE15E010x2A705F00
0x360060000xA69161010xA72162010x37B063000xA44164010x34D065000x356066000xA5F167010xA28168010x321069000x33A06A000xA3316B010x30C06C000xA0516D010xA1E16E010x31706F00
0xAF0170010x3F9071000x3E2072000xAEB173010x3D4074000xADD175010xAC6176010x3CF077000x3B8078000xAB1179010xAAA17A010x3A307B000xA9C17C010x39507D000x38E07E000xA8717F01
0xD80180010x489081000x492082000xD9B183010x4A4084000xDAD185010xDB6186010x4BF087000x4C8088000xDC1189010xDDA18A010x4D308B000xDEC18C010x4E508D000x4FE08E000xDF718F01
0x410090000xD19191010xD02192010x40B093000xD34194010x43D095000x426096000xD2F197010xD58198010x451099000x44A09A000xD4319B010x47C09C000xD7519D010xD6E19E010x46709F00
0x5A00A0000xCA91A1010xCB21A2010x5BB0A3000xC841A4010x58D0A5000x5960A6000xC9F1A7010xCE81A8010x5E10A9000x5FA0AA000xCF31AB010x5CC0AC000xCC51AD010xCDE1AE010x5D70AF00
0xC301B0010x5390B1000x5220B2000xC2B1B3010x5140B4000xC1D1B5010xC061B6010x50F0B7000x5780B8000xC711B9010xC6A1BA010x5630BB000xC5C1BC010x5550BD000x54E0BE000xC471BF01
0x6C00C0000xFC91C1010xFD21C2010x6DB0C3000xFE41C4010x6ED0C5000x6F60C6000xFFF1C7010xF881C8010x6810C9000x69A0CA000xF931CB010x6AC0CC000xFA51CD010xFBE1CE010x6B70CF00
0xF501D0010x6590D1000x6420D2000xF4B1D3010x6740D4000xF7D1D5010xF661D6010x66F0D7000x6180D8000xF111D9010xF0A1DA010x6030DB000xF3C1DC010x6350DD000x62E0DE000xF271DF01
0xEE01E0010x7E90E1000x7F20E2000xEFB1E3010x7C40E4000xECD1E5010xED61E6010x7DF0E7000x7A80E8000xEA11E9010xEBA1EA010x7B30EB000xE8C1EC010x7850ED000x79E0EE000xE971EF01
0x7700F0000xE791F1010xE621F2010x76B0F3000xE541F4010x75D0F5000x7460F6000xE4F1F7010xE381F8010x7310F9000x72A0FA000xE231FB010x71C0FC000xE151FD010xE0E1FE010x7070FF00

CRC Source Code

/* 
 * Model: CRC-32 / CD-ROM-EDC (32-bit)
 * Poly: 0x8001801B, 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, 0x90910101, 0x91210201, 0x01B00300, 0x92410401, 0x02D00500, 0x03600600, 0x93F10701, 
  0x94810801, 0x04100900, 0x05A00A00, 0x95310B01, 0x06C00C00, 0x96510D01, 0x97E10E01, 0x07700F00, 
  0x99011001, 0x09901100, 0x08201200, 0x98B11301, 0x0B401400, 0x9BD11501, 0x9A611601, 0x0AF01700, 
  0x0D801800, 0x9D111901, 0x9CA11A01, 0x0C301B00, 0x9FC11C01, 0x0F501D00, 0x0EE01E00, 0x9E711F01, 
  0x82012001, 0x12902100, 0x13202200, 0x83B12301, 0x10402400, 0x80D12501, 0x81612601, 0x11F02700, 
  0x16802800, 0x86112901, 0x87A12A01, 0x17302B00, 0x84C12C01, 0x14502D00, 0x15E02E00, 0x85712F01, 
  0x1B003000, 0x8B913101, 0x8A213201, 0x1AB03300, 0x89413401, 0x19D03500, 0x18603600, 0x88F13701, 
  0x8F813801, 0x1F103900, 0x1EA03A00, 0x8E313B01, 0x1DC03C00, 0x8D513D01, 0x8CE13E01, 0x1C703F00, 
  0xB4014001, 0x24904100, 0x25204200, 0xB5B14301, 0x26404400, 0xB6D14501, 0xB7614601, 0x27F04700, 
  0x20804800, 0xB0114901, 0xB1A14A01, 0x21304B00, 0xB2C14C01, 0x22504D00, 0x23E04E00, 0xB3714F01, 
  0x2D005000, 0xBD915101, 0xBC215201, 0x2CB05300, 0xBF415401, 0x2FD05500, 0x2E605600, 0xBEF15701, 
  0xB9815801, 0x29105900, 0x28A05A00, 0xB8315B01, 0x2BC05C00, 0xBB515D01, 0xBAE15E01, 0x2A705F00, 
  0x36006000, 0xA6916101, 0xA7216201, 0x37B06300, 0xA4416401, 0x34D06500, 0x35606600, 0xA5F16701, 
  0xA2816801, 0x32106900, 0x33A06A00, 0xA3316B01, 0x30C06C00, 0xA0516D01, 0xA1E16E01, 0x31706F00, 
  0xAF017001, 0x3F907100, 0x3E207200, 0xAEB17301, 0x3D407400, 0xADD17501, 0xAC617601, 0x3CF07700, 
  0x3B807800, 0xAB117901, 0xAAA17A01, 0x3A307B00, 0xA9C17C01, 0x39507D00, 0x38E07E00, 0xA8717F01, 
  0xD8018001, 0x48908100, 0x49208200, 0xD9B18301, 0x4A408400, 0xDAD18501, 0xDB618601, 0x4BF08700, 
  0x4C808800, 0xDC118901, 0xDDA18A01, 0x4D308B00, 0xDEC18C01, 0x4E508D00, 0x4FE08E00, 0xDF718F01, 
  0x41009000, 0xD1919101, 0xD0219201, 0x40B09300, 0xD3419401, 0x43D09500, 0x42609600, 0xD2F19701, 
  0xD5819801, 0x45109900, 0x44A09A00, 0xD4319B01, 0x47C09C00, 0xD7519D01, 0xD6E19E01, 0x46709F00, 
  0x5A00A000, 0xCA91A101, 0xCB21A201, 0x5BB0A300, 0xC841A401, 0x58D0A500, 0x5960A600, 0xC9F1A701, 
  0xCE81A801, 0x5E10A900, 0x5FA0AA00, 0xCF31AB01, 0x5CC0AC00, 0xCC51AD01, 0xCDE1AE01, 0x5D70AF00, 
  0xC301B001, 0x5390B100, 0x5220B200, 0xC2B1B301, 0x5140B400, 0xC1D1B501, 0xC061B601, 0x50F0B700, 
  0x5780B800, 0xC711B901, 0xC6A1BA01, 0x5630BB00, 0xC5C1BC01, 0x5550BD00, 0x54E0BE00, 0xC471BF01, 
  0x6C00C000, 0xFC91C101, 0xFD21C201, 0x6DB0C300, 0xFE41C401, 0x6ED0C500, 0x6F60C600, 0xFFF1C701, 
  0xF881C801, 0x6810C900, 0x69A0CA00, 0xF931CB01, 0x6AC0CC00, 0xFA51CD01, 0xFBE1CE01, 0x6B70CF00, 
  0xF501D001, 0x6590D100, 0x6420D200, 0xF4B1D301, 0x6740D400, 0xF7D1D501, 0xF661D601, 0x66F0D700, 
  0x6180D800, 0xF111D901, 0xF0A1DA01, 0x6030DB00, 0xF3C1DC01, 0x6350DD00, 0x62E0DE00, 0xF271DF01, 
  0xEE01E001, 0x7E90E100, 0x7F20E200, 0xEFB1E301, 0x7C40E400, 0xECD1E501, 0xED61E601, 0x7DF0E700, 
  0x7A80E800, 0xEA11E901, 0xEBA1EA01, 0x7B30EB00, 0xE8C1EC01, 0x7850ED00, 0x79E0EE00, 0xE971EF01, 
  0x7700F000, 0xE791F101, 0xE621F201, 0x76B0F300, 0xE541F401, 0x75D0F500, 0x7460F600, 0xE4F1F701, 
  0xE381F801, 0x7310F900, 0x72A0FA00, 0xE231FB01, 0x71C0FC00, 0xE151FD01, 0xE0E1FE01, 0x7070FF00
};

uint32_t calculate_crc(const uint8_t *data, size_t length) {
    uint32_t crc = 0x00000000;
    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/CD-ROM-EDC

CRC-32/CD-ROM-EDC is the error-detection code used by CD-ROM sectors.

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

Documented application context for this model includes CD-ROM, Optical media, Sector 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
0x6EC2EDC4
Residue
0x00000000

Model characteristics

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

Bit order
Reflected
Register start
0x00000000
Final XOR
0x00000000
Published check
0x6EC2EDC4

Implementation checks for CRC-32/CD-ROM-EDC

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

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

Complete CRC-32/CD-ROM-EDC parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0x8001801BGenerator polynomial without the leading termRead guide
Init0x00000000Initial 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
Check0x6EC2EDC4CRC of ASCII “123456789”Read guide
Residue0x00000000Expected residue after appending a valid CRCRead guide
AliasesCD-ROM EDC

Where CRC-32/CD-ROM-EDC is used

  • 01CD-ROM
  • 02Optical media
  • 03Sector validation

CRC-32/CD-ROM-EDC FAQ

What is the check value for CRC-32/CD-ROM-EDC?

For the standard ASCII test input 123456789, the check value of CRC-32/CD-ROM-EDC is 0x6EC2EDC4.

What polynomial does CRC-32/CD-ROM-EDC use?

CRC-32/CD-ROM-EDC uses the 32-bit polynomial 0x8001801B.

Does CRC-32/CD-ROM-EDC use reflected input and output?

For CRC-32/CD-ROM-EDC, RefIn is Yes and RefOut is Yes.

What is CRC-32/CD-ROM-EDC commonly confused with?

The closest published model by parameter overlap is CRC-32/JAMCRC, differing from CRC-32/CD-ROM-EDC in polynomial and initial value.