[ create a new paste ] login | about

Link: http://codepad.org/7clZ94vd    [ raw code | output | fork ]

salvador@conclase.net - C++, pasted on Nov 6:
// Calculo de CRC
// (C) 2009 Con Clase
// Salvador Pozo
#include <iostream>

using namespace std;

const unsigned int CCITT_POLYNOM = 0x1021;
typedef unsigned short int WORD;
typedef unsigned char BYTE;

WORD CalcCRC(WORD uCRC, BYTE bData);

int main() {
    WORD uCRC = 0xffff;

    char cadena[] = "Cadena de prueba para calculo de CRC";

    for(int i = 0; cadena[i]; i++) 
        uCRC = CalcCRC(uCRC, (BYTE)cadena[i]);
    cout << "CRC: " << hex << uCRC << endl;
    return 0;	  
}

WORD CalcCRC(WORD uCRC, BYTE bData) {
   int i;
   BYTE bD= bData;
   for(i = 0; i < 8; i++) {
        uCRC <<= 1;
        if(bD & 0x0080) uCRC ^= CCITT_POLYNOM;
        bD <<= 1;
   }
   return uCRC;
}


Output:
1
CRC: 2a23


Create a new paste based on this one


Comments: