Friday, 25 March 2011

การคำนวณ CRC-CCITT โดยใช้ C#

การคำนวณค่า CRC-CCITT น้้นผมได้เขียนเป็นภาษา C# ขึ้นมาตามนี้

private ushort ComputeCRC(char[] Message)
{
ushort temp, crc, quick;
crc = 0xffff;
for (int i = 0; i < Message.Length ; ++i)
{
temp = (ushort)((crc >> 8) ^ Message[i]);
crc <<= 8;
quick = (ushort)(temp ^ (temp >> 4));
crc ^= quick;
quick <<= 5;
crc ^= quick;
quick <<= 7;
crc ^= quick;
}
return crc;
}

---------------------------------------------------------

การใช้งานนั้นทำได้ดังนี้

ushort Crc; // ประกาศตัวแปร Crc ชนิดข้อมูล ushort

char[] arr = {'A','B','C','D'}; // ค่าที่ต้องการแปลง
Crc = ComputeCRC(arr); // ใช้ฟังก์ชันที่เขียนไว้
dec2Hex(Crc) // คำออกไปแสดงผลโดยการแปลงเป็น
// เลขฐาน 16

No comments: