0

16 進数の計算を受け取りたい:

  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) (16 進数の結果 (4D 1A 2B 3C (label5.text)))。

プログラムに異なるバイトを取得するように指示する方法がわかりません-4D / 1A / 2B ...これは、実際には、科学モードの電卓で「16進関数」を選択し、それらすべての4D 1Aを入力して実行できることです.. by XORを押します。

4

2 に答える 2

2

私が正しく理解しているように、あなたXORはあなたの値に適用し、その結果をにs保存したいので、これを試すことができますHEXtxtSend.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");

IFを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 に答える