crc_basic Sınıfı
Örnek
Örnek
Şöyle yaparız.
Örnek
unsigned char const data[] = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 };
std::size_t const data_len = sizeof(data) / sizeof(data[0]);
boost::crc_basic<16> crc_basic(0x1021, 0xFFFF, 0, false, false);
crc_basic.process_bytes(data, data_len);
crc_basic.checksum();
crc_optimal SınıfıÖrnek
Şöyle yaparız.
unsigned char const data[] = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 };
std::size_t const data_len = sizeof(data) / sizeof(data[0]);
boost::crc_optimal<16, 0x1021, 0xFFFF, 0, false, false> crc_optimal;
crc_optimal.process_bytes(data, data_len);
crc_optimal.checksum();
crc_ccitt_type Sınıfı- 16 bit
checksum metodu
Şöyle yaparız.
Bu sınıf aslında bir type. Tanımı şöyle
0x04C11DB7 : kullanılacak polinomu gösterir.
0xFFFFFFFF : işlemeye başlamadan önce ilk beslenecek değeri gösterir.
0xFFFFFFFF : işlem bittikten sonra beslenecek değeri gösterir.
true : beslenen byteların tersine çevrileceğini gösterir.
true : çıktı byteların tersine çevrileceğini gösterir.
Constructor
Şöyle yaparız.
Döngü içinde nesneye veri eklenir. Şöyle yaparız.
Daha sonra nesneden CRC alınır. Şöyle yaparız.
Şöyle yaparız.
const unsigned char data[] = {0x32, 0x31, 0x1E, 0x33, 0x35, 0x30};
boost::crc_ccitt_type result;
result.process_bytes(data, 6);
std::cout << "checksum = " << std::hex << result.checksum() << std::endl;
crc_32_type Sınıfı - 32 bitBu sınıf aslında bir type. Tanımı şöyle
typedef crc_optimal<32,0x04C11DB7,0xFFFFFFFF,0xFFFFFFFF, true, true> crc_32_type;
32 : sınıfın kaç bitlik çıktı vereceğini gösterir.0x04C11DB7 : kullanılacak polinomu gösterir.
0xFFFFFFFF : işlemeye başlamadan önce ilk beslenecek değeri gösterir.
0xFFFFFFFF : işlem bittikten sonra beslenecek değeri gösterir.
true : beslenen byteların tersine çevrileceğini gösterir.
true : çıktı byteların tersine çevrileceğini gösterir.
Constructor
Şöyle yaparız.
boost::crc_32_type crc;
process metoduDöngü içinde nesneye veri eklenir. Şöyle yaparız.
crc.process_bytes(&buffer[0], bytes_read);
checksum metoduDaha sonra nesneden CRC alınır. Şöyle yaparız.
crc.checksum()
crc metodu
crc_32_type veya crc_itt_type yerine gelen crc metodu da kullanılabilir.
unsigned char const data[] = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 };
std::size_t const data_len = sizeof(data) / sizeof(data[0]);
uint16_t checksum = boost::crc<16, 0x1021, 0xFFFF, 0, false, false>(data, data_len);
Hiç yorum yok:
Yorum Gönder