J'ai un souci depuis hier pour un cast un peu particulier.
En fait, j'aimerais convertir des variables [De type string ou int] en binaire.
Après plusieurs recherches sur google, j'ai trouvé que la méthode "BitArray" pouvait prendre en charge cette conversion.
Le souci est le suivant, dès que j'essaye de m'en servir, mon IDE [Visual 2010 C# Express], me renvoie l'erreur suivante :
Citation : Visual 2010 C# Express
"Le type ou le nom d'espace de noms 'BitArray' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)"
J'ai donc essayé de voir où était le problème, et manifestement ça vient d'un using pas déclaré.
Google est mon ami, je retourne voir dans quel using la méthode BitArray est déclarée... Et je vois que c'est dans le using System.
Après vérification de mon code source, je confirme que pourtant le using System est bien écrit.
Je m'en remets donc à vous puisque là je sèche complètement
A votre avis :
1) J'abandonne l'idée de cette conversion en binaire
2) Vous connaissez peut être ce problème de BitArray... Donc, comment le résoudre ?
3) Vous avez une alternative au BitArray ?
Merci d'avance
Au même titre qu'une imprimante ou un scanner, le geek est un périphérique relié à l'ordinateur, via l'interface 2CS (Chaise-Clavier-Souris)
Voyons les choses autrement: dans quel but veux-tu convertir ces variables en binaire ?
Il y a peut-être une solution spécifiquement adaptée à ton objectif
Dans le cadre de ma formation, on m'a demandé de mettre au point un crypteur XOR.
Je suis donc parti sur le principe suivant :
1) On récupère le mot à crypter ainsi qu'un entier qui sera la "clef" de cryptage
2) On convertie ces deux variables en tableau binaire [Avec le BitArray]
3) A l'aide d'une boucle for, on parcourt les deux tableaux binaires pour les transformer en tableaux de booléens [False = 0 ; True = 1]
4) Toujours à l'aide d'une boucle for, j'applique un opérateur XOR à mes deux tableaux de booléens [Merci les tutos de SDZ :D]
5) On reconstitue une chaine de caractère en appliquant à l'inverse la méthode décrite ci dessus.
[Euh... Oui, si jamais ça te vient à l'esprit, on m'a déjà dit que j'avais un esprit tordu ]
Au même titre qu'une imprimante ou un scanner, le geek est un périphérique relié à l'ordinateur, via l'interface 2CS (Chaise-Clavier-Souris)
Il y a cependant un petit problème d'affichage.
J'ai mis ce code dans le foreach pour afficher ce qu'il se passe au fur et à mesure.
foreach (char c in s)
{
Console.WriteLine(c);
Console.WriteLine(s2 += Convert.ToChar(c ^ key));
}
Et problème :
J'ai trouvé ma réponse sur un autre sujet
Apparemment, il faut concaténer la clef pour comparer un chiffre à une lettre [Et non pas, la clef à une lettre].
J'ai pas le temps pour le moment de tester, mais je fais ça dans la soirée et je vous tiens au courant !
Au même titre qu'une imprimante ou un scanner, le geek est un périphérique relié à l'ordinateur, via l'interface 2CS (Chaise-Clavier-Souris)
Le texte donné par un cryptage XOR est pas vraiment fait pour être lisible, là mon code te donne du cyrillique (et il semblerait que la console ait un peu de problèmes à afficher ça...).
Faut peut-être régler l'encodage ?
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int i = 1; // On initialise une variable à incrémenter pour composer notre "clef"
string s = "Mon test"; // On initialise le message à crypter
string s2 = ""; // On prépare une chaine decaractère pour stocker le message crypté
string S3 = ""; // Une autre pour comparer avec le message de base
foreach (char c in s)
{
Console.WriteLine(S3 += c); // On recompose la chaine de caractères
Console.WriteLine(s2 += Convert.ToChar(c ^ i)); // On compose la chaine de caractères codés
i++; // On incrémente la variable "clef"
if (i > 4) // Etant donné que l'on veut la clef "1234", dès que i dépasse 4, on le ramène à sa valeur initiale
{
i = 1;
}
}
}
}
}
Et voilà le résultat :
Merci bien pour votre aide.
Aethec, j'ai essayé de me renseigner pour paramétrer comme il faut la console et mettre un affichage cyrillique. Mais j'ai capitulé.
Ca devenait trop sombre.
Bonne soirée
Au même titre qu'une imprimante ou un scanner, le geek est un périphérique relié à l'ordinateur, via l'interface 2CS (Chaise-Clavier-Souris)
Cryptage XOR
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.