convertir - Cadena a binario en C#
convertir texto a binario c++ (4)
¿Parece que básicamente desea tomar una cadena ASCII, o más preferiblemente, un byte [] (ya que puede codificar su cadena a un byte [] usando su modo de codificación preferido) en una cadena de unos y ceros? es decir, 101010010010100100100101001010010100101001010101000010111101101010
Esto hará eso por ti ...
//Formats a byte[] into a binary string (010010010010100101010)
public string Format(byte[] data)
{
//storage for the resulting string
string result = string.Empty;
//iterate through the byte[]
foreach(byte value in data)
{
//storage for the individual byte
string binarybyte = Convert.ToString(value, 2);
//if the binarybyte is not 8 characters long, its not a proper result
while(binarybyte.Length < 8)
{
//prepend the value with a 0
binarybyte = "0" + binarybyte;
}
//append the binarybyte to the result
result += binarybyte;
}
//return the result
return result;
}
Tengo una función para convertir la cadena a hexadecimal como esto,
public static string ConvertToHex(string asciiString)
{
string hex = "";
foreach (char c in asciiString)
{
int tmp = c;
hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
}
return hex;
}
¿Podría ayudarme, por favor, a escribir otra cadena en la función binaria basada en mi función de muestra?
public static string ConvertToBin(string asciiString)
{
string bin = "";
foreach (char c in asciiString)
{
int tmp = c;
bin += String.Format("{0:x2}", (uint)System.Convert.????(tmp.ToString()));
}
return bin;
}
Aquí hay una función de extensión:
public static string ToBinary(this string data, bool formatBits = false)
{
char[] buffer = new char[(((data.Length * 8) + (formatBits ? (data.Length - 1) : 0)))];
int index = 0;
for (int i = 0; i < data.Length; i++)
{
string binary = Convert.ToString(data[i], 2).PadLeft(8, ''0'');
for (int j = 0; j < 8; j++)
{
buffer[index] = binary[j];
index++;
}
if (formatBits && i < (data.Length - 1))
{
buffer[index] = '' '';
index++;
}
}
return new string(buffer);
}
Puedes usarlo como:
Console.WriteLine("Testing".ToBinary());
y si agrega ''verdadero'' como parámetro, se separará automáticamente cada secuencia binaria.
Aqui tienes:
public static byte[] ConvertToByteArray(string str, Encoding encoding)
{
return encoding.GetBytes(str);
}
public static String ToBinary(Byte[] data)
{
return string.Join(" ", data.Select(byt => Convert.ToString(byt, 2).PadLeft(8, ''0'')));
}
// Use any sort of encoding you like.
var binaryString = ToBinary(ConvertToByteArray("Welcome, World!", Encoding.ASCII));
Lo siguiente le dará la codificación hexadecimal para el byte bajo de cada carácter, que se parece a lo que está pidiendo:
StringBuilder sb = new StringBuilder();
foreach (char c in asciiString)
{
uint i = (uint)c;
sb.AppendFormat("{0:X2}", (i & 0xff));
}
return sb.ToString();