windows - Gemmer binært inde i et array

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg laver et program, hvor jeg skal konvertere en ASCII-kode til binær og derefter sende det til en matrix, som


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 };


Nu har jeg skrevet programmet til at konvertere ASCII til binært


ved hjælp af følgende kode


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;


}


Antag nu, at jeg giver værdien 'A', den bliver konverteret til 1100001, jeg vil konvertere den til værdier 1,1,0,0,0,0,1 og overføre den til ovenstående int[] c;.


Er der nogen anden måde at gøre det på?

Bedste reference


Tag et kig på klassen BitArray, måske passer det til dine behov [8]


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


BitArray repræsenterer allerede en række boolesker.


Hvis du vil konvertere det til en række af heltal, hvis det virkelig er nødvendigt for en efterfølgende brug, kan du løbe om det:


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


eller enhver anden sløjfe efter eget valg