我想收到一个十六进制计算:
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)”之后添加HEX计算结果:
4D 1A 2B 3C(label5.text)(十六进制结果(4D 1A 2B 3C(label5.text)))。
我无法理解如何告诉我的程序获得不同的字节 - 4D / 1A / 2B ......这实际上是我们可以用科学模式上的计算器选择“十六进制函数”并输入所有那些4D 1A ..按XOR。
答案 0 :(得分:2)
正如我所理解的那样,您希望在XOR
值上应用s
并将结果存储在HEX
中txtSend.Text
如果是这样,您可以试试这个1} p>
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
答案 1 :(得分: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") + ")";