Narzędzia użytkownika

Narzędzia witryny


crc

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
crc [2009/04/30 00:36]
qboosh
crc [2009/04/30 00:43]
qboosh
Linia 20: Linia 20:
   * **''​Truncated polynominal''​** - Skrócony wielomian dzielący. Skrócenie polega na opuszczeniu pierwszego bitu (odpowiadającemu współczynnikowi przed najwyższą potęgą wielomianu),​ ponieważ bit ten zawsze jest równy 1. W innym przypadku byłby to wielomian niższego rzędu niż zakładany.   * **''​Truncated polynominal''​** - Skrócony wielomian dzielący. Skrócenie polega na opuszczeniu pierwszego bitu (odpowiadającemu współczynnikowi przed najwyższą potęgą wielomianu),​ ponieważ bit ten zawsze jest równy 1. W innym przypadku byłby to wielomian niższego rzędu niż zakładany.
  
- * **''​Initial remainder''​** - początkowa wartość reszty z dzielenia - wprowadzona po to by uniknąć "​ślepych punktów",​ czyli sytuacji w których dla pewnych szczególnych wiadomości,​ ich kod CRC będzie zaczynał się od samych zer.+  ​* **''​Initial remainder''​** - początkowa wartość reszty z dzielenia - wprowadzona po to by uniknąć "​ślepych punktów",​ czyli sytuacji w których dla pewnych szczególnych wiadomości,​ ich kod CRC będzie zaczynał się od samych zer.
  
- * **''​Final XOR value''​** - ciąg bitów z którymi wartość końcowa CRC jest XOR'​owana. Zazwyczaj jest to ciąg samych zer lub samych jedynek.+  ​* **''​Final XOR value''​** - ciąg bitów z którymi wartość końcowa CRC jest XOR'​owana. Zazwyczaj jest to ciąg samych zer lub samych jedynek.
  
- * **''​Reflected input''​** - parametr typu boolean określający czy ciąg wejściowy ma być odwracany przed obliczeniem kodu nadmiarowego.+  ​* **''​Reflected input''​** - parametr typu boolean określający czy ciąg wejściowy ma być odwracany przed obliczeniem kodu nadmiarowego.
  
- * **''​Reflected output''​** - parametr typu boolean określający czy ciąg wyjściowy (kod nadmiarowy) ma być odwrócony. Dla obu powyższych parametrów przez odwrócenie rozumiemy zamianę miejscami bitu pierwszego z ostatnim, drugiego z przedostatnim itd.+  ​* **''​Reflected output''​** - parametr typu boolean określający czy ciąg wyjściowy (kod nadmiarowy) ma być odwrócony. Dla obu powyższych parametrów przez odwrócenie rozumiemy zamianę miejscami bitu pierwszego z ostatnim, drugiego z przedostatnim itd.
  
 Dostęp do parametrów jest umożliwiony przez odpowiednie metody "​get"​. Dostęp do parametrów jest umożliwiony przez odpowiednie metody "​get"​.
Linia 37: Linia 37:
 Poniżej przykładowa definicja obiektu klasy podstawowej:​ Poniżej przykładowa definicja obiektu klasy podstawowej:​
 <code cpp> <code cpp>
 +//Parametr szablonu - Rozmiar
 +//Parametry konstruktora - Truncated polynominal,​ Initial remainder, Final XOR value, Reflected input, Reflected output
 boost::​crc_basic<​8> ​ crc_podstawowa( 0x25, 0x00, 0, false, false ); boost::​crc_basic<​8> ​ crc_podstawowa( 0x25, 0x00, 0, false, false );
 </​code>​ </​code>​
Linia 46: Linia 48:
 Przykładowa definicja: Przykładowa definicja:
 <code cpp> <code cpp>
 +//Parametry szablonu: Rozmiar, Truncated polynominal,​ Initial remainder, Final XOR value, Reflected input, Reflected output
 boost::​crc_optimal<​8,​ 0x25, 0x00, 0, false, false> ​ crc_optymalna;​ boost::​crc_optimal<​8,​ 0x25, 0x00, 0, false, false> ​ crc_optymalna;​
 </​code>​ </​code>​
Linia 51: Linia 54:
 ===== Operacje ===== ===== Operacje =====
  
- * **''​void process_bit( bool bit );''​** -> przetworzenie pojedynczego bitu (wyłącznie dla klasy Podstawowej)+  ​* **''​void process_bit( bool bit );''​** -> przetworzenie pojedynczego bitu (wyłącznie dla klasy Podstawowej)
  
- * **''​void process_bits( unsigned char bits, std::size_t bit_count );''​** -> przetworzenie dowolnej ilości bitów (wyłącznie dla klasy podstawowej)+  ​* **''​void process_bits( unsigned char bits, std::size_t bit_count );''​** -> przetworzenie dowolnej ilości bitów (wyłącznie dla klasy podstawowej)
  
- * **''​void process_byte( unsigned char byte );''​** -> przetworzenie pojedynczego bajtu+  ​* **''​void process_byte( unsigned char byte );''​** -> przetworzenie pojedynczego bajtu
  
- * **''​void process_block( void const *bytes_begin,​ void const *bytes_end );''​** -> przetworzenie bloku bajtów (parametrami są początek i koniec)+  ​* **''​void process_block( void const *bytes_begin,​ void const *bytes_end );''​** -> przetworzenie bloku bajtów (parametrami są początek i koniec)
  
- * **''​void process_bytes( void const *buffer, std::size_t byte_count );''​** -> przetworzenie dowolnej ilości bajtów+  ​* **''​void process_bytes( void const *buffer, std::size_t byte_count );''​** -> przetworzenie dowolnej ilości bajtów
  
- * **''​value_type checksum() const;''​** -> zwrócenie aktualnej wartości reszty kodowej+  ​* **''​value_type checksum() const;''​** -> zwrócenie aktualnej wartości reszty kodowej
  
- * **''​void operator ()( unsigned char byte );''​** -> przeciążony operator, woła process_byte (wyłącznie dla klasy optymalnej)+  ​* **''​void operator ()( unsigned char byte );''​** -> przeciążony operator, woła process_byte (wyłącznie dla klasy optymalnej)
  
- * **''​value_type operator ()() const;''​** -> zwraca aktualną wartość reszty kodowej (wyłącznie dla klasy optymalnej)+  ​* **''​value_type operator ()() const;''​** -> zwraca aktualną wartość reszty kodowej (wyłącznie dla klasy optymalnej)
  
  
 ===== Kod z przykładowym wykorzystaniem ===== ===== Kod z przykładowym wykorzystaniem =====
 {{boostcrc.cpp}} {{boostcrc.cpp}}
crc.txt · ostatnio zmienione: 2009/04/30 00:47 przez qboosh