Сохранение двоичного кода в массиве - PullRequest
0 голосов
/ 27 марта 2012

Я делаю программу, в которой мне нужно преобразовать код ASCII в двоичный файл, а затем передать его в массив, например

int[] c = { 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1 };

Теперь я написал программу для преобразования ASCII в двоичный файл

с использованием следующего кода

private void button1_Click(object sender, EventArgs e) {
    string str1;

    str1 = textBox1.Text.ToString();
    ASCIIEncoding ascii = new ASCIIEncoding();
    byte[] bytes = ascii.GetBytes(str1);
    string result ="";
    foreach (byte b in bytes)
        result += Convert.ToString(b, 2);
    //MessageBox.Show(result);
    string str2;
    str2 = result.ToString();
    textBox2.Text = str2;


}

Теперь предположим, что я даю значение 'A', которое преобразуется в 1100001, я хочу преобразовать его в значения 1,1,0,0,0,0,1 и передать его ввыше int[] c;.

Есть ли другой способ сделать это?

1 Ответ

1 голос
/ 27 марта 2012

Взгляните на класс BitArray , возможно, он соответствует вашим потребностям

BitArray bits = new BitArray(ascii.GetBytes(str1));

BitArray уже представляет массив логических значений.

Чтобы преобразовать его в массив целых чисел, если это действительно необходимо для следующего использования, вы можете выполнить цикл через него:

int[] intArray = new int[bits.Length];
for(int i = 0; i<bits.Length; i++)
    intArray[i] = bits[i] ? 1 : 0;

или любой другой цикл по вашему выбору

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...