0

我想收到一个十六进制计算:

  static int count = 0;
  string s;
  private void SetClock_Click(object sender, EventArgs e)
   {
        count++;
        label5.Text = count.ToString("X2");
        DateTime time = DateTime.Now;
        s = "4D-" + "1A-" + "2B-" + "3C-" +(label5.Text);
        txtSend.Text = s;
   }

之后,我删除了代码之间的“-”,我想在“(label5.text)”之后添加十六进制计算结果:

4D 1A 2B 3C(label5.text)((4D 1A 2B 3C(label5.text))上的十六进制结果)。

我不明白如何告诉我的程序获取不同的字节 - 4D/1A/2B ......这实际上是我们可以用计算器在科学模式下选择“十六进制函数”并输入所有那些 4D 1A .. by按异或。

4

2 回答 2

2

正如我正确理解的那样,您想应用XOR您的s价值并将其结果存储HEXtxtSend.TextIf 中,您可以试试这个

s = "4D-" + "1A-" + "2B-" + "3C-" +(label5.Text);
string [] allHaxValues= s.Split(new char[]{'-'});
int result = 0;

foreach(string haxValue in allHaxValues)
{
   result = result ^ Convert.ToInt32(haxValue, 16);
}
txtSend.Text = result.ToString("X");

如果label5.Text包含1然后结果将是41

result = 4D XOR 1A XOR 2B XOR 3C XOR 1
于 2012-10-27T13:15:11.443 回答
0

我认为这可能是您正在寻找的内容,请注意我已替换'-'为,' '因此您可以在代码中使用它。

count++;
label5.Text = count.ToString("X2");
DateTime time = DateTime.Now;
s = "4D-" + "1A-" + "2B-" + "3C-" + label5.Text;
s = s.Replace('-', ' ');
string[] strings = s.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
List<int> ints = strings.Select(a => int.Parse(a,System.Globalization.NumberStyles.AllowHexSpecifier)).ToList<int>();
int xor = ints[0];
for(int i=1;i<ints.Count;i++)
{
      xor ^= ints[i];
}
txtSend.Text = s + " (" + xor.ToString("X2") + ")";
于 2012-10-27T13:19:16.060 回答