¿Cómo podría obtener los bits de una cadena en c #?

Si tuviera la siguiente cadena “Caja azul”, ¿cómo podría obtener los bits que conforman la cadena en c # y en qué tipo de datos la almacenaría?

Si hago solo la letra “o”, obtengo 111 como bytes y 111 como bits. ¿Está cortando los 0 y si hago “oo”, obtengo 111 por cada o en la matriz de bytes, pero para los bits, obtengo el valor 28527. ¿Por qué?

Si desea que los bits en un formato de cadena, podría utilizar esta función:

public string GetBits(string input) { StringBuilder sb = new StringBuilder(); foreach (byte b in Encoding.Unicode.GetBytes(input)) { sb.Append(Convert.ToString(b, 2)); } return sb.ToString(); } 

Si usas tu ejemplo de “Caja azul” obtienes:

 string bitString = GetBits("Blue Box"); // bitString == "100001001101100011101010110010101000000100001001101111011110000" 

Podrías hacer lo siguiente:

 byte[] bytes = System.Text.UTF8Encoding.Default.GetBytes("Blue Box"); BitArray bits = new System.Collections.BitArray(bytes); 

Eso depende de lo que quieras decir con “bits”. ¿Estás hablando de la representación ASCII? UTF8? UTF16? El espacio de nombres System.Text.Encoding debería ayudarte a comenzar.