This question already has answers here:
What does least significant byte mean?
(4个答案)
3年前关闭。
我正在分配作业,它要求我通过剥离整数的补码版本的最低有效字节来计算校验和...
这是我感到困惑的作业大纲的一部分:
“ CHECKSUM字段(MM)的值是通过计算COUNT,ADDRESS之和的1的补数值的最低有效字节得出的
和记录的DATA字段”
我对这意味着什么有点不清楚,因为我并没有真正使用C语言中的补码或LSB。
到目前为止,我有:
我并不是真的希望它能起作用,但是我已经做了一些研究,这就是我想出的。
我需要对最低有效字节的含义进行澄清。
附言for循环的原因仅仅是为了获取数据的总数。对此并不重要,但是代码使用了变量,因此我认为我将只复制整个内容以避免混淆。
(4个答案)
3年前关闭。
我正在分配作业,它要求我通过剥离整数的补码版本的最低有效字节来计算校验和...
这是我感到困惑的作业大纲的一部分:
“ CHECKSUM字段(MM)的值是通过计算COUNT,ADDRESS之和的1的补数值的最低有效字节得出的
和记录的DATA字段”
我对这意味着什么有点不清楚,因为我并没有真正使用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循环的原因仅仅是为了获取数据的总数。对此并不重要,但是代码使用了变量,因此我认为我将只复制整个内容以避免混淆。
最佳答案
我需要对最低有效字节的含义进行澄清。
最后一个有效字节表示数字256,从0到255的结果。
unsigned leastSignificantByte(unsigned j)
{
return j & 0xff;
}
关于c - C-剥离最低有效字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35591748/
10-09 09:00