/// <summary> /// Получить бинарный код /// </summary> /// <param name="data">Входное число</param> /// <returns>Бинарный код</returns> public LongBits GetDKFromComparators(int data) { LongBits simpleCode = GetEKFromComparators(data); LongBits simplePositionCode = MathProcessor.GetEPKFromEK(simpleCode); return(MathProcessor.GetDK(simplePositionCode)); }
/// <summary> /// Получить индексы битов с ошибками в последовательном позиционном коде /// </summary> /// <param name="data">Входное число</param> /// <returns>Индексы битов с ошибками в последовательном позиционном коде</returns> public int[] GetEKPErrorFromComparators(int data) { int m = (int)Math.Pow(2, N) - 1; LongBits idealSimpleCode = MathProcessor.GetEK(data, m); LongBits idealSimplePositionCode = MathProcessor.GetEPKFromEK(idealSimpleCode); LongBits realSimpleCode = GetEKFromComparators(data); LongBits realSimplePositionCode = MathProcessor.GetEPKFromEK(realSimpleCode); List <int> errors = new List <int>(); for (int i = 0; i < realSimpleCode.Length; i++) { if (idealSimplePositionCode[i] != realSimplePositionCode[i]) { errors.Add(i + 1); } } return(errors.ToArray()); }