public void Control_Sum_DeCoding() { if (Stroka_Bits != null) { int[] mass = Stroka_Bits.Select(ch => int.Parse(ch.ToString())).ToArray();// Add string to arry // Стоимость нахождения в массиве int[] mass1 = new int[mass.Length]; for (int i = 0, j = 2; i < mass1.Length; i++, j++) { mass1[i] = j; } //Стоимость 1 или 0 в массиве, 0 - 1 ; 1 - 2 int[] mass2 = new int[mass.Length]; for (int i = 0; i < mass2.Length; i++) { if (mass[i] == 0) { mass2[i] = 1; } else { mass2[i] = 2; } } // теперь мы перемножаем массив1 и массив2 и заносим полученные значения в переменную for (int i = 0; i < mass1.Length; i++) { Control_Sum2 += mass1[i] * mass2[i]; } // короче тут можно еше какой нибудь алгоритм запилить типо мы знаем контрольную сумму отправленных данных // и по ним можем узнать какие данные отправлены // типо можно добавить словарь - например 010 = 12, 001 = 11 и так далее // и уже можно отпралять только контрольную сумму; Stroka_Bits = null; //обнуляем строку if (Control_Sum1 == Control_Sum2) { ErrorCheck = "Ошибки не произошло, контрольные суммы равны "; } else { ErrorCheck = "Произошла ошибка, контрольные суммы различны "; } } }
public void Control_Sum_Codding() { if (Stroka_Bits != null) { int[] mass = Stroka_Bits.Select(ch => int.Parse(ch.ToString())).ToArray();// Add string to arry // Стоимость нахождения в массиве int[] mass1 = new int[mass.Length]; for (int i = 0, j = 2; i < mass1.Length; i++, j++) { mass1[i] = j; } //Стоимость 1 или 0 в массиве, 0 - 1 ; 1 - 2 int[] mass2 = new int[mass.Length]; for (int i = 0; i < mass2.Length; i++) { if (mass[i] == 0) { mass2[i] = 1; } else { mass2[i] = 2; } } // теперь мы перемножаем массив1 и массив2 и заносим полученные значения в переменную for (int i = 0; i < mass1.Length; i++) { Control_Sum1 += mass1[i] * mass2[i]; } Stroka_Bits = null; //обнуляем строку } }