gpt4 book ai didi

C - 剥离最低有效字节

转载 作者:行者123 更新时间:2023-11-30 20:23:43 25 4
gpt4 key购买 nike

我正在做一项作业,它要求我通过去掉整数的补码版本的最低有效字节来计算校验和...

这是作业大纲中我感到困惑的部分:

“CHECKSUM 字段 (MM) 值是通过取 COUNT、ADDRESS 之和的 1 补码值的最低有效字节来计算的和记录的数据字段”

我有点不清楚这意味着什么,因为我还没有真正使用过 C 语言中的补码或 LSB。

到目前为止我所拥有的是:

int checkSum(int count, int address, char* data)
{
int i = 0;
int dataTotal = 0;

for(i = 0; i < strlen(data); i += 2)
{
dataTotal += (getIntFromHex(data[i]) * 16) + getIntFromHex(data[i + 1]);
}

int checksum = ~(count + address + dataTotal) & 1;
printf("Checksum: %.2X\n", checksum);

return checksum;
}

我真的没想到这会起作用,但我做了一些研究,这就是我想到的。

我需要澄清一下最低有效字节的含义。

附注for循环的原因很简单,就是为了获取数据的总数。对此并不重要,但代码使用了变量,所以我想我只需复制整个内容以避免混淆。

最佳答案

I need some clarification on what is meant by the least significant byte.

最后一个有效字节表示数字 mod 256,即从 0 到 255 的结果。

unsigned leastSignificantByte(unsigned j)
{
return j & 0xff;
}

关于C - 剥离最低有效字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35591748/

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