Chaîne Binaire en C#
J'ai une fonction pour convertir la chaîne en hexadécimal comme cela,
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;
}
Pourriez-vous svp m'aider à écrire une autre chaîne de fonction Binaire basé sur mon exemple de fonction?
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;
}
char
=>int
=>string
=>uint
=>uint
(de nouveau?) ... waouh! Vous avez perdu moi.- Vous semblez penser que c'est
ToUInt32
qui est en train de faire la conversion de l'hexagone, mais c'est en fait lax2
spécificateur de mise en forme de Chaîne.Format. Malheureusement, je ne pense pas qu'il y est unb8
spécificateur de format. - Vous pouvez mettre en œuvre la ICustomFormatter, sont indiqués dans MSDN lien
Vous devez vous connecter pour publier un commentaire.
Ici, vous allez:
System.Text.UTF8Encoding
.Unicode
.string
a toujours). À mon avis, le que raison de jamais utiliser un non-codage Unicode est dans la mince couche d'interface à un système d'héritage qui ne peut pas être changé. Et puis même, c'est seulement jusqu'à ce que le système d'héritage peut être remplacé. Maintenant, l'OP peut dire que les personnages deasciiString
sont limités à la plage ASCII (7 bits de valeurs). Si c'est le cas, l'UTF-8 est la solution sera identique à l'ASCII solution, donc UTF-8 doit être utilisé de toute façon.string
, pas unbyte[]
.Il ressemble fondamentalement, vous voulez prendre une chaîne de caractères ASCII, ou plus, de préférence, un byte[] (comme vous pouvez encoder votre chaîne de caractères à un octet[] à l'aide de votre choix de mode de codage) dans une chaîne de uns et de zéros? c'est à dire 101010010010100100100101001010010100101001010010101000010111101101010
Ce ne sera que pour vous...
Le tableau suivant vous donne le codage hexadécimal pour l'octet de poids faible de chaque personnage, qui ressemble à ce que vous me demandez:
Ici est une extension de la fonction:
Vous pouvez l'utiliser comme:
et si vous ajoutez "vrai" comme paramètre, il sera automatiquement séparer chaque séquence binaire.