Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Funkcja zamienia miejscami bity starsze z mlodszymi
- unsigned long Zamien_bity(unsigned long liczba, char l_bitow)
- {
- unsigned long wynik = 0;
- for (int i = 1; i < (l_bitow + 1); i++)
- {
- if (liczba & 1)
- wynik |= 1 << (l_bitow - i);
- liczba >>= 1;
- }
- return wynik;
- }
- //Wypelnia tablice odpowiednimi wartosciami
- void InitiateCRC(void) {
- //Dla kazdego znaku ASCII
- for (int ASCII = 0; ASCII<256; ASCII++)
- {
- tablica[ASCII] = Zamien_bity(ASCII, 8) << 24;
- for (int j = 0; j < 8; j++)
- {
- if ((tablica[ASCII] & (1 << 31)) != 0)
- {
- tablica[ASCII] = (tablica[ASCII] << 1) ^ P;
- }
- else
- {
- tablica[ASCII] = (tablica[ASCII] << 1);
- }
- }
- tablica[ASCII] = Zamien_bity(tablica[ASCII], 32);
- }
- return;
- }
- void sumCRC(string sciezkaWej)
- {
- ifstream komp;
- komp.open(sciezkaWej, ios::binary);
- char kod[20];
- unsigned char bajt;
- bool wynik;
- unsigned long crc32 = 0xffffffff;
- while (!komp.eof())
- {
- bajt = komp.get();
- wynik = komp.good();
- if (!wynik) break;
- crc32 = (crc32 >> 8) ^ tablica[(crc32 & 255) ^ bajt];
- }
- int sumCrc;
- sumCrc = crc32 ^ 0xffffffff;
- _itoa(sumCrc, kod, 16);
- cout << "****** SUMA KONTROLNA ******";
- cout << endl << "hex: " << kod;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement