Сдвиг элеманта на 7 влево C#

176
29 мая 2019, 16:20

Разрабатываю алгоритм. Не могу понять, как реализовтаь сдвиг элементов. На вход поступаем: string encod = "10110101010111000011110101001010101101"; Мне нужно, чтобы каждый раз в строчке бралось по 7 цифр и проходило по матрице, у меня это не получается. Конкретно нужно в это коде

for (i = 0; i < 11; i++)
        {
            for (j = 0; j < 7; j++)
                encoded[i] += ((data[j]) * (gmatrix[j, i]));
            encoded[i] = encoded[i] % 2;
            Console.Write("{0} |", encoded[i]);
        }

Пробывал вот так, но ничего не вышло

 for (int b = 0; b < data.Length; b+=4)
    {
        for (i = 0; i < 11; i++)
        {
            for (j = 0; j < 7; j++)
                encoded[i] += ((data[j+b]) * (gmatrix[j, i]));
            encoded[i] = encoded[i] % 2;
            Console.Write("{0} |", encoded[i]);
        }
        Console.WriteLine();
    }

Вот весь код

string encod = "10110101010111000011110101001010101101";
char[] data = encod.ToCharArray();
    int[] encoded = new int[11];

    char[,] gmatrix = new char[7, 11] { { '1', '0', '0', '0', '0', '0', '0','0','1','1','1' },
                                        { '0', '1', '0', '0', '0', '0', '0','1','0','1','1'}, 
                                        { '0', '0', '1', '0', '0','0', '0','1','1','0','1' }, 
                                        { '0', '0', '0', '1', '0', '0', '0','1','1','1','0' },
                                        { '0', '0', '0', '0', '1', '0', '0','0','0','1','1' },
                                        { '0', '0', '0', '0', '0', '1', '0','1','1','0','0' },
                                        { '0', '0', '0', '0', '0', '0', '1','1','1','1','1' },};
    int i, j;
    Console.Write("\nHamming code----- Encoding\n\nEnter 4 bit data : \n");
    Console.Write("\nGenerator matrix\n");
    for (i = 0; i < 7; i++)
    {
        for (j = 0; j < 11; j++)
        {
            Console.Write("{0} \t|", gmatrix[i, j]);
        }
        Console.WriteLine();
    }
    Console.WriteLine("\nEncoded data ");
        for (i = 0; i < 11; i++)
        {
            for (j = 0; j < 7; j++)
                encoded[i] += ((data[j]) * (gmatrix[j, i]));
            encoded[i] = encoded[i] % 2;
            Console.Write("{0} |", encoded[i]);
        }
                Console.ReadKey();
READ ALSO
Лишний автоинкремент в таблице

Лишний автоинкремент в таблице

Создал таблицу в конструкторе MS SQL ServerСвязал с DataGridView, настроил автоинкремент поля ID

195
project.Documects всегда пустой Roslyn

project.Documects всегда пустой Roslyn

при запуске проекта document всегда пустой

179
Как внедрить System.Data в exe?

Как внедрить System.Data в exe?

На компьютере у одного пользователя не установлен SqlClientСоответственно у меня используются экземпляры класса System

163
Редактирование коллекции в PropertyGrid

Редактирование коллекции в PropertyGrid

В общем, сделал класс, который содержит несколько простых строковых полей

191