je dessous code. J'essaie de ne vider que 18 LSBits de la variable a. Mais la valeur déversée dans le fichier est 3bcdf.bits de dumping/octets dans un fichier en mode binaire
Ma question - est-il pas possible de vider/fwrite/fprintf nombre souhaité de bits qui ne soit pas un multiple de 4 (grignotage) dans un fichier?
Merci
EDIT:
1.) Lorsque j'ai vérifié la sortie de mon fichier de vidage j'ai réalisé, depuis que je suis l'ouverture du fichier en mode binrary, je ne devrait pas utiliser fprintf, mais je utilisez fwrite. 2.) Ce que je vois dans la sortie est DF BC 03, il écrit en multiples de 8 bits, donc il écrit 24 bits (3 octets) mais j'étais intéressé par seulement 18 bits. Mais je me suis rendu compte que la bibliothèque d'écriture de fichier ne sera pas capable d'écrire un non-multiple de 8 bits dans un fichier. il ajoutera toujours les bits de début zéro pour compléter l'octet, puis le vider. "L'unité du compte le moins" pour une donnée de fichier est un octet.
-AD.
Je crains que vous ne pouvez pas écrire une partie d'un octet dans un fichier. Vous devez écrire des octets complets. Si vous voulez qu'un autre processus ne lise que 18 bits, vous devez le faire lire 18 bits spécifiquement, ou écrire le nombre de bits dans le fichier (par exemple dans les 4 premiers octets). –