Я пытаюсь XOR каждую букву из моего TextBox с каждым значением из моего массива. Проблема заключается в том, что когда я конвертирую double
в массив int
, мой массив int
result
хранит только одно значение.Преобразование double в int array
Если я запускаю мой код я получаю первое письмо операции XOR, но если я вход более одного, я получаю сообщение:
System.IndexOutOfRangeException: Индекс находился вне границ массива.
Я пробовал себя создать целочисленный массив, как: int[] result = new int[] {1,2,3,4,5,6,7};
и у меня не было никаких проблем с операцию XOR до 7 букв ..
private void iTalk_Button_12_Click(object sender, EventArgs e)
{
ambiance_RichTextBox1.Text = XorText(ambiance_RichTextBox1.Text);
}
private string XorText(string text)
{
string newText = "";
double r = 3.9;
double[] first_value = new double[text.Length];
double[] to_int_array = new double[text.Length];
for (int i = 0; i < text.Length; i++)
{
double get_first = r * i * (1 - i);
int index = (int)(i * text.Length);
first_value[index] = get_first;
}
for (int i = 0; i < text.Length; i++)
{
int xnbb = 0;
if (first_value[i] > Math.Exp(Math.Log(2) * (-i)))
{
double get_first = first_value[i] - Math.Exp(Math.Log(2) * (-i));
xnbb = 1;
}
double array_of_values = xnbb + 1 * Math.Round(Math.Exp(Math.Log(2) * (24 - i)));
int index = (int)(i * text.Length);
to_int_array[index] = array_of_values;
int[] result = new int[] { Convert.ToInt32(to_int_array[i]) };
int charValue = Convert.ToInt32(text[i]);
charValue ^= result[i]%320;
newText += char.ConvertFromUtf32(charValue);
}
return newText;
}
Отбросьте этот код и начните с блок-схемы. Я не думаю, что здесь есть одна строка кода, которая имеет смысл. О, хорошо, может быть, 'return newText;' может остаться. –