我有一个计算偏移量的程序,但我没有源代码。我试图看看如何使用C#计算。第一个输入十六进制数字不能小于80.这是我到目前为止所写的,但它不能正确计算偏移量:
private void getOffSet()
{
// Default offset
int defaultOffset = 0x0512;
// Input
byte byte1input = 0x80;
byte byte2input = 0x00;
int inValue = byte2input + (byte1input << 8);
// Calculate offset
int outValue = inValue + defaultOffset;
// Convert integer as a hex in a string variable
string hexValue = outValue.ToString("X");
}
任何帮助纠正此功能以计算正确的偏移量都将非常感激。先谢谢你。
答案 0 :(得分:1)
以下功能与您的列表相匹配。然而,这当然是一个疯狂的猜测,因为我无法将其与原始程序相匹配,我不知道这些偏移意味着什么。
private void getOffSet(byte one, byte two)
{
byte baseByte = 0x80;
int defaultOffset = 0x0418;
int mul = (one - baseByte) % 8;
int result = mul * 0x2000 + defaultOffset;
result += two * 0x0020;
Console.WriteLine(result.ToString("X"));
}