#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();
}
}
}