计算两个十六进制字符串的偏移量

时间:2014-02-24 13:42:51

标签: c# hex

我有一个计算偏移量的程序,但我没有源代码。我试图看看如何使用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"); 

}

任何帮助纠正此功能以计算正确的偏移量都将非常感激。先谢谢你。

1 个答案:

答案 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"));
}