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; }
2 个解决方案
#1
友情UP
#2
看看这个:
http://topic.csdn.net/t/20050620/11/4093638.html
如果你不是用在嵌入式系统上,推荐按字节计算。那点内存对pc来讲小意思。
http://topic.csdn.net/t/20050620/11/4093638.html
如果你不是用在嵌入式系统上,推荐按字节计算。那点内存对pc来讲小意思。
#1
友情UP
#2
看看这个:
http://topic.csdn.net/t/20050620/11/4093638.html
如果你不是用在嵌入式系统上,推荐按字节计算。那点内存对pc来讲小意思。
http://topic.csdn.net/t/20050620/11/4093638.html
如果你不是用在嵌入式系统上,推荐按字节计算。那点内存对pc来讲小意思。