Je souhaite enregistrer certaines informations dans un fichier texte (format .txt). Pour réduire la taille du fichier, j'utilise chaque bit d'un nombre binaire de 16 bits pour représenter certaines informations. Par exemple, pour un nombre binaire de 16 bits 0000 0001 1000 1111
, chaque bit a sa signification spécifique. Étant donné que tout caractère ASCII est égal à 8 bits nombre binaire, donc je veux convertir mon numéro 16 bits à deux caractères et enregistrez-le:Est-il possible de convertir un nombre binaire 16 bits en deux caractères et l'enregistrer dans un fichier texte?
uint16_t a;
a = 13 << 10 | 1 << 3 | 2;// a is a 16bit binary number
char b, c;
b = (char)(a>>8);
c = (char)a;// convert a to two characters
Alors je sauverai b et c dans un fichier texte. Quand je lis le fichier texte plus tard, je vais convertir ces deux caractères en nombre binaire de 16 bits et obtenir les informations. Le problème est que je sais que certains caractères ASCII ne sont pas imprimables, alors je me demande s'il y a un problème? Toute réponse sera très appréciée!
Les caractères non imprimables ne posent problème que lorsque vous essayez de les imprimer. Ou exécutez le fichier via un système qui ne peut traiter que des caractères imprimables. Tant que tout le monde traite le fichier comme les données binaires qu'il est (vous ne devriez pas vraiment appeler cet ASCII - qui d'ailleurs n'a que 7 bits) tout va bien. – Thilo
Merci pour votre réponse! Je vais enregistrer les caractères dans un fichier txt, puis je vais le compresser en utilisant un logiciel, winzip par exemple. Je ne suis pas sûr que ce soit possible. – LiuGui
Je pense que cela empêcherait beaucoup de confusion si vous appeliez cela un fichier binaire et lui donniez une extension différente, disons ".bin". Y a-t-il une raison pour laquelle vous ne pouvez pas? –