ATLAS Offline Software
Loading...
Searching...
No Matches
crc8.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include <fstream> // ifstream, ofstream, fstream
8#include <iostream>
9
10using namespace std;
11
13 // cout<<"Inizio della sessione crc8\n";
14 m_crci = 0x00; // crc iniziale,default="00000000"
15 m_pol = 0x838000; // polinomio divisore="1000000111"
16 m_ma = 0x800000; // maschera
17}
18
20 // cout<<"Fine della sessione crc8\n";
21}
22
24 return m_crci;
25 // return pol;
26 // return ma;
27}
28
29int crc8::calc(int dato) {
30 int i;
31 int masc;
32 int poli;
33
34 m_crci = m_crci << 16; // shifta il crc iniziale per metterlo davanti al dato
35 dato = dato ^ m_crci; // mette,tramite xor,il crc davanti al dato
36 masc = m_ma; // carico la maschera
37 poli = m_pol; // carico il polinomio divisore
38
39 for (i = 0; i < 16; i++) {
40 if (dato & masc) // tramite AND,individua se il MSB e' 1 e divide
41 dato = dato ^ poli; // divisione tra dato e polinomio
42 masc = masc >> 1; // shift per bit successivo
43 poli = poli >> 1; // shift per bit successivo
44 }
45 m_crci = dato; // caricamento del crc ottenuto
46 return 0;
47}
int m_pol
Definition crc8.h:17
int m_ma
Definition crc8.h:18
int calc(int dato)
Definition crc8.cxx:29
~crc8()
Definition crc8.cxx:19
crc8()
Definition crc8.cxx:12
int m_crci
Definition crc8.h:16
int current()
Definition crc8.cxx:23
STL namespace.