Чтение / вставка элементов массива в матрицу

#c# #arrays #string #matrix

#c# #массивы #строка #матрица

Вопрос:

У меня есть массив с двоичными значениями, который я разобрал и вставил их в массив, но теперь я хочу переместить эти элементы в матрицу [8, 8] (построчно), как я могу это сделать?

Я пытался, но не смог найти ни одного хорошего примера

 static void Main(string[] args)
{
    string textonorm, textobin = "", textobin1 = "", textocod = "";
    int textval, quant, result, txtvalor;

    Console.WriteLine("Digite a frase que deseja criptografar!");
    textonorm = Console.ReadLine();

    textval = System.Text.ASCIIEncoding.UTF8.GetByteCount(textonorm);
    byte[] phrase = Encoding.ASCII.GetBytes(textonorm);

    foreach (byte b in phrase)
    {
        textobin  = Convert.ToString(b, 2);
        textval = textobin.Length;
    }

    if (textval < 64)
    {
        quant = 64 - textval;
        foreach (byte b in phrase)
        {
            textobin1  = Convert.ToString(b, 2);
        }
        textocod = textobin1.PadLeft(quant, '0');
        txtvalor = textobin1.Length;
        Console.WriteLine(textocod.ToString()   "rn "   "rn "   txtvalor.ToString());

        string[] textarray = textocod.Split('0', '1');
        int[,]  matrizval = new int[8,8];

        foreach (var substr in textarray)
        {
            Console.WriteLine(Convert.ToString());
        }
    }
    else
    {
        Console.WriteLine("ok");
    }
}
  

Ответ №1:

Код можно было бы улучшить, если бы вы точно объяснили, чего вы от него ожидаете, но скопировать значения в матрицу:

 using System;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string textonorm, textobin = "", textobin1 = "", textocod = "";
            int textval, quant, result, txtvalor;

            Console.WriteLine("Digite a frase que deseja criptografar!");
            textonorm = Console.ReadLine();

            textval = System.Text.ASCIIEncoding.UTF8.GetByteCount(textonorm);
            byte[] phrase = Encoding.ASCII.GetBytes(textonorm);

            foreach (byte b in phrase)
            {
                textobin  = Convert.ToString(b, 2);
                textval = textobin.Length;
            }

            if (textval < 64)
            {
                quant = 64;
                foreach (byte b in phrase)
                {
                    textobin1  = Convert.ToString(b, 2);
                }
                textocod = textobin1.PadLeft(quant, '0');
                txtvalor = textobin1.Length;
                Console.WriteLine(textocod.ToString()   "rn "   "rn "   txtvalor.ToString());

                char[] chararray = textocod.ToCharArray();
                int[,] matrizval = new int[8, 8];

                if (chararray.Length == 64)
                    for (int i = 0; i < 8;   i)
                    {
                        for (int j = 0; j < 8;   j)
                        {
                            int val = chararray[i * 8   j] - '0';
                            Console.Write(val);
                            matrizval[i, j] = val;
                        }
                        Console.WriteLine();
                    }
            }
            else
            {
                Console.WriteLine("ok");
            }

            Console.Write("nPress any key...");
            Console.ReadKey();
        }
    }
}