Skip to main content
CRC Calc

CRC-32 / BASE91-D

Width32-bitRefInYesRefOutYes

Need custom parameters? Open in full calculator

Standard test string

Result

0x87315576

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

0x000000000x2BDDD04F0x57BBA09E0x7C6670D10xAF77413C0x84AA91730xF8CCE1A20xD31131ED0xF6DD1A530xDD00CA1C0xA166BACD0x8ABB6A820x59AA5B6F0x72778B200x0E11FBF10x25CC2BBE
0x4589AC8D0x6E547CC20x12320C130x39EFDC5C0xEAFEEDB10xC1233DFE0xBD454D2F0x96989D600xB354B6DE0x988966910xE4EF16400xCF32C60F0x1C23F7E20x37FE27AD0x4B98577C0x60458733
0x8B13591A0xA0CE89550xDCA8F9840xF77529CB0x246418260x0FB9C8690x73DFB8B80x580268F70x7DCE43490x561393060x2A75E3D70x01A833980xD2B902750xF964D23A0x8502A2EB0xAEDF72A4
0xCE9AF5970xE54725D80x992155090xB2FC85460x61EDB4AB0x4A3064E40x365614350x1D8BC47A0x3847EFC40x139A3F8B0x6FFC4F5A0x44219F150x9730AEF80xBCED7EB70xC08B0E660xEB56DE29
0xBE152A1F0x95C8FA500xE9AE8A810xC2735ACE0x11626B230x3ABFBB6C0x46D9CBBD0x6D041BF20x48C8304C0x6315E0030x1F7390D20x34AE409D0xE7BF71700xCC62A13F0xB004D1EE0x9BD901A1
0xFB9C86920xD04156DD0xAC27260C0x87FAF6430x54EBC7AE0x7F3617E10x035067300x288DB77F0x0D419CC10x269C4C8E0x5AFA3C5F0x7127EC100xA236DDFD0x89EB0DB20xF58D7D630xDE50AD2C
0x350673050x1EDBA34A0x62BDD39B0x496003D40x9A7132390xB1ACE2760xCDCA92A70xE61742E80xC3DB69560xE806B9190x9460C9C80xBFBD19870x6CAC286A0x4771F8250x3B1788F40x10CA58BB
0x708FDF880x5B520FC70x27347F160x0CE9AF590xDFF89EB40xF4254EFB0x88433E2A0xA39EEE650x8652C5DB0xAD8F15940xD1E965450xFA34B50A0x292584E70x02F854A80x7E9E24790x5543F436
0xD419CC150xFFC41C5A0x83A26C8B0xA87FBCC40x7B6E8D290x50B35D660x2CD52DB70x0708FDF80x22C4D6460x091906090x757F76D80x5EA2A6970x8DB3977A0xA66E47350xDA0837E40xF1D5E7AB
0x919060980xBA4DB0D70xC62BC0060xEDF610490x3EE721A40x153AF1EB0x695C813A0x428151750x674D7ACB0x4C90AA840x30F6DA550x1B2B0A1A0xC83A3BF70xE3E7EBB80x9F819B690xB45C4B26
0x5F0A950F0x74D745400x08B135910x236CE5DE0xF07DD4330xDBA0047C0xA7C674AD0x8C1BA4E20xA9D78F5C0x820A5F130xFE6C2FC20xD5B1FF8D0x06A0CE600x2D7D1E2F0x511B6EFE0x7AC6BEB1
0x1A8339820x315EE9CD0x4D38991C0x66E549530xB5F478BE0x9E29A8F10xE24FD8200xC992086F0xEC5E23D10xC783F39E0xBBE5834F0x903853000x432962ED0x68F4B2A20x1492C2730x3F4F123C
0x6A0CE60A0x41D136450x3DB746940x166A96DB0xC57BA7360xEEA677790x92C007A80xB91DD7E70x9CD1FC590xB70C2C160xCB6A5CC70xE0B78C880x33A6BD650x187B6D2A0x641D1DFB0x4FC0CDB4
0x2F854A870x04589AC80x783EEA190x53E33A560x80F20BBB0xAB2FDBF40xD749AB250xFC947B6A0xD95850D40xF285809B0x8EE3F04A0xA53E20050x762F11E80x5DF2C1A70x2194B1760x0A496139
0xE11FBF100xCAC26F5F0xB6A41F8E0x9D79CFC10x4E68FE2C0x65B52E630x19D35EB20x320E8EFD0x17C2A5430x3C1F750C0x407905DD0x6BA4D5920xB8B5E47F0x936834300xEF0E44E10xC4D394AE
0xA496139D0x8F4BC3D20xF32DB3030xD8F0634C0x0BE152A10x203C82EE0x5C5AF23F0x778722700x524B09CE0x7996D9810x05F0A9500x2E2D791F0xFD3C48F20xD6E198BD0xAA87E86C0x815A3823

CRC Source Code

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

const uint32_t crc_table[256] = {
  0x00000000, 0x2BDDD04F, 0x57BBA09E, 0x7C6670D1, 0xAF77413C, 0x84AA9173, 0xF8CCE1A2, 0xD31131ED, 
  0xF6DD1A53, 0xDD00CA1C, 0xA166BACD, 0x8ABB6A82, 0x59AA5B6F, 0x72778B20, 0x0E11FBF1, 0x25CC2BBE, 
  0x4589AC8D, 0x6E547CC2, 0x12320C13, 0x39EFDC5C, 0xEAFEEDB1, 0xC1233DFE, 0xBD454D2F, 0x96989D60, 
  0xB354B6DE, 0x98896691, 0xE4EF1640, 0xCF32C60F, 0x1C23F7E2, 0x37FE27AD, 0x4B98577C, 0x60458733, 
  0x8B13591A, 0xA0CE8955, 0xDCA8F984, 0xF77529CB, 0x24641826, 0x0FB9C869, 0x73DFB8B8, 0x580268F7, 
  0x7DCE4349, 0x56139306, 0x2A75E3D7, 0x01A83398, 0xD2B90275, 0xF964D23A, 0x8502A2EB, 0xAEDF72A4, 
  0xCE9AF597, 0xE54725D8, 0x99215509, 0xB2FC8546, 0x61EDB4AB, 0x4A3064E4, 0x36561435, 0x1D8BC47A, 
  0x3847EFC4, 0x139A3F8B, 0x6FFC4F5A, 0x44219F15, 0x9730AEF8, 0xBCED7EB7, 0xC08B0E66, 0xEB56DE29, 
  0xBE152A1F, 0x95C8FA50, 0xE9AE8A81, 0xC2735ACE, 0x11626B23, 0x3ABFBB6C, 0x46D9CBBD, 0x6D041BF2, 
  0x48C8304C, 0x6315E003, 0x1F7390D2, 0x34AE409D, 0xE7BF7170, 0xCC62A13F, 0xB004D1EE, 0x9BD901A1, 
  0xFB9C8692, 0xD04156DD, 0xAC27260C, 0x87FAF643, 0x54EBC7AE, 0x7F3617E1, 0x03506730, 0x288DB77F, 
  0x0D419CC1, 0x269C4C8E, 0x5AFA3C5F, 0x7127EC10, 0xA236DDFD, 0x89EB0DB2, 0xF58D7D63, 0xDE50AD2C, 
  0x35067305, 0x1EDBA34A, 0x62BDD39B, 0x496003D4, 0x9A713239, 0xB1ACE276, 0xCDCA92A7, 0xE61742E8, 
  0xC3DB6956, 0xE806B919, 0x9460C9C8, 0xBFBD1987, 0x6CAC286A, 0x4771F825, 0x3B1788F4, 0x10CA58BB, 
  0x708FDF88, 0x5B520FC7, 0x27347F16, 0x0CE9AF59, 0xDFF89EB4, 0xF4254EFB, 0x88433E2A, 0xA39EEE65, 
  0x8652C5DB, 0xAD8F1594, 0xD1E96545, 0xFA34B50A, 0x292584E7, 0x02F854A8, 0x7E9E2479, 0x5543F436, 
  0xD419CC15, 0xFFC41C5A, 0x83A26C8B, 0xA87FBCC4, 0x7B6E8D29, 0x50B35D66, 0x2CD52DB7, 0x0708FDF8, 
  0x22C4D646, 0x09190609, 0x757F76D8, 0x5EA2A697, 0x8DB3977A, 0xA66E4735, 0xDA0837E4, 0xF1D5E7AB, 
  0x91906098, 0xBA4DB0D7, 0xC62BC006, 0xEDF61049, 0x3EE721A4, 0x153AF1EB, 0x695C813A, 0x42815175, 
  0x674D7ACB, 0x4C90AA84, 0x30F6DA55, 0x1B2B0A1A, 0xC83A3BF7, 0xE3E7EBB8, 0x9F819B69, 0xB45C4B26, 
  0x5F0A950F, 0x74D74540, 0x08B13591, 0x236CE5DE, 0xF07DD433, 0xDBA0047C, 0xA7C674AD, 0x8C1BA4E2, 
  0xA9D78F5C, 0x820A5F13, 0xFE6C2FC2, 0xD5B1FF8D, 0x06A0CE60, 0x2D7D1E2F, 0x511B6EFE, 0x7AC6BEB1, 
  0x1A833982, 0x315EE9CD, 0x4D38991C, 0x66E54953, 0xB5F478BE, 0x9E29A8F1, 0xE24FD820, 0xC992086F, 
  0xEC5E23D1, 0xC783F39E, 0xBBE5834F, 0x90385300, 0x432962ED, 0x68F4B2A2, 0x1492C273, 0x3F4F123C, 
  0x6A0CE60A, 0x41D13645, 0x3DB74694, 0x166A96DB, 0xC57BA736, 0xEEA67779, 0x92C007A8, 0xB91DD7E7, 
  0x9CD1FC59, 0xB70C2C16, 0xCB6A5CC7, 0xE0B78C88, 0x33A6BD65, 0x187B6D2A, 0x641D1DFB, 0x4FC0CDB4, 
  0x2F854A87, 0x04589AC8, 0x783EEA19, 0x53E33A56, 0x80F20BBB, 0xAB2FDBF4, 0xD749AB25, 0xFC947B6A, 
  0xD95850D4, 0xF285809B, 0x8EE3F04A, 0xA53E2005, 0x762F11E8, 0x5DF2C1A7, 0x2194B176, 0x0A496139, 
  0xE11FBF10, 0xCAC26F5F, 0xB6A41F8E, 0x9D79CFC1, 0x4E68FE2C, 0x65B52E63, 0x19D35EB2, 0x320E8EFD, 
  0x17C2A543, 0x3C1F750C, 0x407905DD, 0x6BA4D592, 0xB8B5E47F, 0x93683430, 0xEF0E44E1, 0xC4D394AE, 
  0xA496139D, 0x8F4BC3D2, 0xF32DB303, 0xD8F0634C, 0x0BE152A1, 0x203C82EE, 0x5C5AF23F, 0x77872270, 
  0x524B09CE, 0x7996D981, 0x05F0A950, 0x2E2D791F, 0xFD3C48F2, 0xD6E198BD, 0xAA87E86C, 0x815A3823
};

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 ^ 0xFFFFFFFF;
}

About CRC-32/BASE91-D

CRC-32/BASE91-D pairs with Base91 encoding to checksum compact text-safe payloads.

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

Documented application context for this model includes Base91 encoding, Compact text payloads, Data encoding. 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
0x87315576

Model characteristics

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

Bit order
Reflected
Register start
0xFFFFFFFF
Final XOR
0xFFFFFFFF
Published check
0x87315576

Implementation checks for CRC-32/BASE91-D

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

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

Complete CRC-32/BASE91-D parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0xA833982BGenerator 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
XorOut0xFFFFFFFFFinal value XORed with the CRC registerRead guide
Check0x87315576CRC of ASCII “123456789”Read guide
ResidueNot listedExpected residue after appending a valid CRCRead guide
AliasesCRC-32D

Where CRC-32/BASE91-D is used

  • 01Base91 encoding
  • 02Compact text payloads
  • 03Data encoding

CRC-32/BASE91-D FAQ

What is the check value for CRC-32/BASE91-D?

For the standard ASCII test input 123456789, the check value of CRC-32/BASE91-D is 0x87315576.

What polynomial does CRC-32/BASE91-D use?

CRC-32/BASE91-D uses the 32-bit polynomial 0xA833982B.

Does CRC-32/BASE91-D use reflected input and output?

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

What is CRC-32/BASE91-D commonly confused with?

The closest published model by parameter overlap is CRC-32/AUTOSAR, differing from CRC-32/BASE91-D in polynomial.