谁做过 crc8查表法校验啊 ~~~~
表已经构造好了,但是由于原理理解不够充分,具体算法还不太会,希望大虾们帮解决完成!
public byte[] crc_table = new byte[256];
#region 构造对应表
/// <summary>
/// 构造对应表(h(x) = x^8+ x^5+ x^4 + 1)
/// </summary>
public CRC8()
{
crc_table[0] = 0;
crc_table[1] = 94;
crc_table[2] = 188;
crc_table[3] = 226;
crc_table[4] = 97;
。
。
。
crc_table[254] = 107;
crc_table[255] = 53;
}
#endregion
#region IVerifier 成员
/// <summary>
/// 生成crc8
/// </summary>
/// <param name="_valueString">被校验字符</param>
/// <returns>返回校验码</returns>
public string GenerateVerifyHexString(string _valueString)
{
int i;
int index;
int crc_High = 0x00;
//将十六进制数直接保存到数组中
byte[] mod = new byte[_valueString.Length];
for (int m = 0; m < _valueString.Length; m++)
{
mod[m] = Convert.ToByte(_valueString[m].ToString(), 16);
}
//核心算法
for (i = 0; i < _valueString.Length; i++)
{
此处应该怎么写????
}
int temp = crc_High;
string Verify = temp.ToString("X");
return Verify; }