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

📄 crc32.h

📁 QAM module to use in Java with an easy interface and powerful performance
💻 H
字号:
//License: GNU
//
//
//
//    J-QAM sound card modem
//
//    Copyright (C) 2007  Jonti Olds
//
//
//
//    This program is free software: you can redistribute it and/or modify
//
//    it under the terms of the GNU General Public License as published by
//
//    the Free Software Foundation, either version 3 of the License, or
//
//    (at your option) any later version.
//
//
//
//    This program is distributed in the hope that it will be useful,
//
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//
//    GNU General Public License for more details.
//
//
//
//    You should have received a copy of the GNU General Public License
//
//    along with this program.  If not, see <http://www.gnu.org/licenses/>
//---------------------------------------------------------------------------

#ifndef Crc32H
#define Crc32H
#include <cassert>
//---------------------------------------------------------------------------
//Crc::Type
//const ethernetKey = 0x04c11db7;

class Crc
{
public:
	typedef unsigned long Type;

	Crc (Type key)
		: _key (key), _register (0)
	{}
	Type Done ()
	{
		Type tmp = _register;
		_register = 0;
		return tmp;
	}
protected:
	Type _key;	// really 33-bit key, counting implicit 1 top-bit
	Type _register;
};

class FastCrc: public Crc
{
public:
	FastCrc (Crc::Type key)
		: Crc (key)
	{
		_table.Init (key);
	}
	void PutByte (unsigned byte);
        unsigned long __fastcall CalcCRC32(unsigned char * Buf, int  Size);
private:
	class Table
	{
	public:
		Table () : _key (0) {}
		void Init (Crc::Type key);
		Crc::Type operator [] (unsigned i)
		{
			return _table [i];
		}
	private:
		Crc::Type _table [256];
		Crc::Type _key;
	};
private:
	static Table _table;
};

class SlowCrc: public Crc
{
public:
    SlowCrc (Crc::Type key)
        : Crc (key)
    {}

    void PutBit (bool bit);
};


#endif

⌨️ 快捷键说明

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