Как перевести ASCII код символа в двоичный вид? - C#
Формулировка задачи:
У меня из файла считывается какой-то текст .И нужно чтобы код ASCII символы посимвольно в двоичной форме забился в массив. Я понимаю как считать текст в ASCII коде. Я не понимаю как перевести этот код в двоичный и занести это в массив.Помогите пожалуйста разобраться новичку.
Решение задачи: «Как перевести ASCII код символа в двоичный вид?»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
FileInfo file = new FileInfo("vbbook.txt");
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
StreamReader streamReader = new StreamReader("vbbook.txt");
string str = "";
while (!streamReader.EndOfStream)
{
str += streamReader.ReadLine() + Environment.NewLine;
}
textBox1.Text = str;
streamReader.Close();
}
private void button2_Click(object sender, EventArgs e)
{
string text = File.ReadAllText("vbbook.txt");
byte[] key = Encoding.ASCII.GetBytes(text);
byte[] binary = new byte[key.Length * 8];
for (int i = 0; i < binary.Length; i++)
binary[i] = (byte)(key[i / 8] >> 7 - (i % 8) & 1);
StreamWriter write_text;
FileInfo file = new FileInfo("vbbook.txt");
write_text = file.AppendText();
write_text.WriteLine(key);
write_text.Close();
int[,] ArrEncrypt = new int[8, 8];
//stroka 1
ArrEncrypt[0, 0] = 1;
ArrEncrypt[0, 1] = 0;
ArrEncrypt[0, 2] = 0;
ArrEncrypt[0, 3] = 0;
ArrEncrypt[0, 4] = 1;
ArrEncrypt[0, 5] = 0;
ArrEncrypt[0, 6] = 0;
ArrEncrypt[0, 7] = 0;
//строка 2
ArrEncrypt[1, 0] = 0;
ArrEncrypt[1, 1] = 1;
ArrEncrypt[1, 2] = 1;
ArrEncrypt[1, 3] = 0;
ArrEncrypt[1, 4] = 0;
ArrEncrypt[1, 5] = 0;
ArrEncrypt[1, 6] = 1;
ArrEncrypt[1, 7] = 0;
//stroka 3
ArrEncrypt[2, 0] = 0;
ArrEncrypt[2, 1] = 1;
ArrEncrypt[2, 2] = 1;
ArrEncrypt[2, 3] = 1;
ArrEncrypt[2, 4] = 0;
ArrEncrypt[2, 5] = 1;
ArrEncrypt[2, 6] = 1;
ArrEncrypt[2, 7] = 1;
//stroka 4
ArrEncrypt[3, 0] = 1;
ArrEncrypt[3, 1] = 0;
ArrEncrypt[3, 2] = 1;
ArrEncrypt[3, 3] = 1;
ArrEncrypt[3, 4] = 1;
ArrEncrypt[3, 5] = 1;
ArrEncrypt[3, 6] = 0;
ArrEncrypt[3, 7] = 1;
//stroka 5
ArrEncrypt[4, 0] = 0;
ArrEncrypt[4, 1] = 0;
ArrEncrypt[4, 2] = 0;
ArrEncrypt[4, 3] = 1;
ArrEncrypt[4, 4] = 0;
ArrEncrypt[4, 5] = 1;
ArrEncrypt[4, 6] = 1;
ArrEncrypt[4, 7] = 0;
//sтroka 6
ArrEncrypt[5, 0] = 1;
ArrEncrypt[5, 1] = 1;
ArrEncrypt[5, 2] = 0;
ArrEncrypt[5, 3] = 1;
ArrEncrypt[5, 4] = 0;
ArrEncrypt[5, 5] = 0;
ArrEncrypt[5, 6] = 1;
ArrEncrypt[5, 7] = 0;
//stroka 7
ArrEncrypt[6, 0] = 0;
ArrEncrypt[6, 1] = 0;
ArrEncrypt[6, 2] = 0;
ArrEncrypt[6, 3] = 1;
ArrEncrypt[6, 4] = 1;
ArrEncrypt[6, 5] = 0;
ArrEncrypt[6, 6] = 1;
ArrEncrypt[6, 7] = 0;
//sтroka 8
ArrEncrypt[7, 0] = 0;
ArrEncrypt[7, 1] = 1;
ArrEncrypt[7, 2] = 1;
ArrEncrypt[7, 3] = 0;
ArrEncrypt[7, 4] = 1;
ArrEncrypt[7, 5] = 0;
ArrEncrypt[7, 6] = 0;
ArrEncrypt[7, 7] = 1;
int[] mass = new int[binary.Length];
for (int i = 0; i < 8; i++)
for(int j=0; j<8;j++)
{
mass[i] = (ArrEncrypt[0,i] * binary[j] + ArrEncrypt[1,i] * binary[j] + ArrEncrypt[2,i] * binary[j] + ArrEncrypt[3,i] * binary[j] + ArrEncrypt[4,i] * binary[j] + ArrEncrypt[5,i] * binary[j] + ArrEncrypt[6,i] * binary[j] + ArrEncrypt[7,i] * binary[j]);
if (mass[i] % 2 != 0) { mass[i]= 1;}
else { mass[i]=0; };
textBox2.Text += mass[i];
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
FileInfo file = new FileInfo("vbbook.txt");
if (file.Exists == true)
{
file.Delete();
}
else MessageBox.Show("Файла не существует!!");
}
private void button4_Click_1(object sender, EventArgs e)
{
Stream myStream;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Text(*.txt)|*.txt";
if (openFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if ((myStream = openFile.OpenFile()) != null)
{
string strfilename = openFile.FileName;
string filetext = File.ReadAllText(strfilename);
textBox1.Text = filetext;
}
}
}
}
}