Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. //Funkcja zamienia miejscami bity starsze z mlodszymi
  2. unsigned long Zamien_bity(unsigned long liczba, char l_bitow)
  3. {
  4. unsigned long wynik = 0;
  5. for (int i = 1; i < (l_bitow + 1); i++)
  6. {
  7. if (liczba & 1)
  8. wynik |= 1 << (l_bitow - i);
  9. liczba >>= 1;
  10. }
  11. return wynik;
  12. }
  13.  
  14. //Wypelnia tablice odpowiednimi wartosciami
  15. void InitiateCRC(void) {
  16. //Dla kazdego znaku ASCII
  17. for (int ASCII = 0; ASCII<256; ASCII++)
  18. {
  19. tablica[ASCII] = Zamien_bity(ASCII, 8) << 24;
  20. for (int j = 0; j < 8; j++)
  21. {
  22. if ((tablica[ASCII] & (1 << 31)) != 0)
  23. {
  24. tablica[ASCII] = (tablica[ASCII] << 1) ^ P;
  25. }
  26. else
  27. {
  28. tablica[ASCII] = (tablica[ASCII] << 1);
  29. }
  30. }
  31. tablica[ASCII] = Zamien_bity(tablica[ASCII], 32);
  32. }
  33. return;
  34. }
  35.  
  36.  
  37. void sumCRC(string sciezkaWej)
  38. {
  39. ifstream komp;
  40. komp.open(sciezkaWej, ios::binary);
  41. char kod[20];
  42. unsigned char bajt;
  43. bool wynik;
  44.  
  45. unsigned long crc32 = 0xffffffff;
  46.  
  47. while (!komp.eof())
  48. {
  49. bajt = komp.get();
  50. wynik = komp.good();
  51. if (!wynik) break;
  52. crc32 = (crc32 >> 8) ^ tablica[(crc32 & 255) ^ bajt];
  53.  
  54. }
  55.  
  56. int sumCrc;
  57. sumCrc = crc32 ^ 0xffffffff;
  58.  
  59. _itoa(sumCrc, kod, 16);
  60. cout << "****** SUMA KONTROLNA ******";
  61. cout << endl << "hex: " << kod;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement