-4

我有一些用 c# 编写的算法:

int num3 = 260005;
string text = this.textBox1.Text;
int length = text.Length - 4;
int num5 = ((Convert.ToInt32(text.Substring(4, length)) - 0x7d1) / 2) - 0x7d1;


if (num3 == num5)
{
  do somthing!!!
}

有人可以解释如何为 textBox1 获得正确的输入吗?我尝试了一些数学,但我卡住了。

我现在明白了。我对被丢弃的 4 个字符感到困惑。

4

2 回答 2

1

此代码将匹配您要查找的内容...这是因为您丢弃了文本框的前四个字符,然后做了一个简单的((x - 2001) / 2) - 2001 = 260005因此公式x = 526013

int num3 = 260005;
string text = "XXXX526013";
int length = text.Length - 4;
int num5 = ((Convert.ToInt32(text.Substring(4, length)) - 0x7d1) / 2) - 0x7d1;
if (num3 == num5)
{
    Console.WriteLine("Match!");
}
else
{
    Console.WriteLine("No Match! {0}", num5);
}
于 2014-08-21T08:35:32.827 回答
0

您可以简单地反转您的算法:

string text = "asdf" + (((num3 + 0x7d1)*2) + 0x7d1);
于 2014-08-21T08:36:07.047 回答