C# 将文本计算为十六进制

C# 将文本计算为十六进制,c#,C#,我想收到一个十六进制计算: 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-" + "3

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

  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)”之后添加十六进制计算结果:

4D1A2B3C(label5.text)(在(4D1A2B3C(label5.text))上的十六进制结果)


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

正如我正确理解的那样,您希望对
s
值应用
XOR
,并将其结果存储在
HEX
txtSend.Text
中,如果是,您可以尝试此操作

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


我想这可能就是您想要的,请注意,我已将
'-'
替换为
'
,以便您可以在代码中使用它

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") + ")";
count++;
label5.Text=count.ToString(“X2”);
DateTime=DateTime.Now;
s=“4D-”+“1A-”+“2B-”+“3C-”+标签5.Text;
s=s.替换('-','');
string[]strings=s.Split(新字符[]{''},StringSplitOptions.RemoveEmptyEntries);
List ints=strings.Select(a=>int.Parse(a,System.Globalization.NumberStyles.allowehexspecifier)).ToList();
int xor=int[0];

for(int i=1;iI没有回答这个问题。你是说你想要一个以十六进制字符串作为输入的文本框?@NikolaObretenov不需要在你的方法中将s声明为var。这给了我一个错误:foreach语句中都需要Type和indicator。错误链接在这里的“in”上:“foreach(var haxValue in allHaxValues)”@NikolaObretenov,尝试使用foreach(所有HaxValues中的字符串haxValue)@NikolaObretenov,答案更新了,现在检查一下,希望它会有帮助我现在不会出错,但我在4D 1A 2B 3C旁边看不到结果…我需要在标签文本旁边看到结果。正如你所说,如果label5.text=1,我们需要看到:4D-1A-2B-3C-01-resultNick我认为你的代码也会工作,但我已经通过Yograj获得了:)谢谢too@NikolaObretenov没关系,最重要的是你解决了你的问题;-)
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") + ")";