开发者

Trying to figure out how to check a checksum

开发者 https://www.devze.com 2022-12-31 02:27 出处:网络
I\'m trying to figure out how to check a checksum. My message looks like this: 38 0A 01 12 78 96 FE 00 F0 FB D0 FE F6

I'm trying to figure out how to check a checksum. My message looks like this:

38 0A 01 12 78 96 FE 00 F0 FB D0 FE F6

F6 being the checksum. I convert the preceding 12 sets in to binary and then add them together. Then att开发者_如何转开发empt a bitwise operation to apply the 2s complement. I get a value of -1562, but I can't convert it back to hex to check if the value is correct. Can someone point me in the right direction?

my code:

string[] hexValue = {"38", "0A", "01", "12", "78", "96", "FE", "00", "F0", "FB", "D0", "FE"};
int totalValue = 0;
foreach(string item in hexValue)
{
    totalValue += Int32.Parse(item, NumberStyles.HexNumber);
}

int bAfter2sC = ~totalValue + 1;
Console.Write("answer :" + bAfter2sC + "\n");


Coverting to hex is available using ToString: bAfter2sC.ToString("X8")


I'm not sure what algorithm you are using (-1562 requires 3 bytes, not two), but how about using a standard check digit algorithm, like mod 11, also known as ISDN 10 as documented here: "it can be validated very simply by adding all the products together then dividing by 11."

0

精彩评论

暂无评论...
验证码 换一张
取 消