Bonjour,
J'ai un programme de chiffrement à faire; il est assez compliqué mais en gros l'utilisateur doit me donner un nombre entier de 1024 bits et ensuite mon programme chiffre ce nombre en effectuant des modifications sur les bits (et aussi sur les bytes).
Je suis bloquée dès le départ, car je ne sais pas comment dire à mon gentil petit programme qu'il doit travailler sur les bits...j'aurais aimé que ce soit un type de variable à part, mais non...
Alors, j'ai voulu tester la fonction itoa: itoa(entier, chaine de caractère, base 2)
ça me donne bien la représentation binaire du nombre, mais dans une chaîne de caractère. D'une part, ce n'est pas pratique pour faire des xor, d'autre part la fonction itoa semble ne plus fonctionner à partir de l'entier 130001. Bref, ça ne m'aide pas.
Les modifications à effectuer sur mon entier de départ son assez complexe (permutations d'octets, ajout d'une clé, et j'en passe). Je me dis que je pourrais faire le programme en utilisant les opérateurs binaires, et par exemple si je veux le premier octet de mon nombre je fais un & avec l'octet 11111111 qui correspond au nombre 255, puis j'inverse les bits du résultat. Mais, d'une part, si je dois faire ce genre d'opérations à chaque fois que je veux traiter un octet ça va être carrément lourd au final; et d'autre part, j'aimerais bien pouvoir voir le résultat, pour vérifier à chaque étape si tout fonctionne bien.
En bref, je voudrais mon nombre en binaire. Si C est capable de faire des opérations sur sa représentation binaire, il doit bien être foutu de me la donner, non?
toute idée sera la bienvenue![]()
-----