⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc32.cpp

📁 orange源码 数据挖掘技术
💻 CPP
字号:
/* This code is adapted from http://www.createwindow.com/programming/crc32/,
   Copyright 2000 - 2003 Richard A. Ellingson. */

unsigned long crc32_table[256];

long reflect(unsigned long ref, char ch) 
{ unsigned long value(0); 

  for(int i = 1; i < (ch + 1); i++) {
    if(ref & 1) 
      value |= 1 << (ch - i); 
    ref >>= 1; 
  } 
  return value; 
} 


bool initCRC32() 
{ unsigned long ulPolynomial = 0x04c11db7; 

  for(int i = 0; i <= 0xFF; i++) {
    crc32_table[i] = reflect(i, 8) << 24; 
    for (int j = 0; j < 8; j++) 
      crc32_table[i] = (crc32_table[i] << 1) ^ (crc32_table[i] & (1 << 31) ? ulPolynomial : 0); 
    crc32_table[i] = reflect(crc32_table[i], 32); 
  }

  return true;
} 

bool __f = initCRC32();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -