gpt4 book ai didi

c# - 校验功能。将 C 转换为 C#

转载 作者:太空宇宙 更新时间:2023-11-04 02:18:22 26 4
gpt4 key购买 nike

我需要将这些 C 函数转换为 C#。只是想仔细检查我是否做对了。谢谢!

C 代码:

unsigned short Crc;

unsigned short update_crc(unsigned short crc, char c) {
char i;

crc ^= (unsigned short)c<<8;
for (i=0; i<8; i++) {
if (crc & 0x8000) crc = (crc<<1)^0x1021;
else crc <<=1;
}
return crc;
}


void exampleCRC(void){

#define INITIAL_CRC 0xffff

unsigned short Crc = INITIAL_CRC;
record_t record;

for (byteCount=0; byteCount<sizeof(record_t); byteCount++) {
Crc = update_crc(Crc, record[byteCount] );
}
}

C#代码:

ushort UpdateCrc(ref ushort crc, byte b)
{
crc ^= (ushort)(b << 8);

for (int i = 0; i < 8; i++)
{
if ((crc & 0x8000) > 0)
crc = (ushort)((crc << 1) ^ 0x1021);
else
crc <<= 1;
}

return crc;
}

ushort CalcCrc(byte[] data)
{
ushort crc = 0xFFFF;

for (int i = 0; i < data.Length; i++)
crc = UpdateCrc(ref crc, data[i]);

return crc;
}

最佳答案

对我来说似乎很好,除了你真的不需要 UpdateCrcref 参数,因为你无论如何都会返回修改后的值。

关于c# - 校验功能。将 C 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com