cs_MrDimanche
Messages postés16Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention16 avril 2008
-
25 juil. 2007 à 14:38
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
26 juil. 2007 à 13:08
Bonjour,
Voila mon problème :
j'ai un fichier binaire à lire, et j'utilise un "ifstream" puit get... Ca marche très bien, mais ça lit les données octets par octets, que je met en hexa, j'obtiens alors un truc du genre 'f8 56 4c 0'. Dans certain cas j'aurais besoin de lire bit par bits. Fait, je souhaiterai savoir s'il existe une fonction pour lire bit par bit, ou même pour extraire d'un int la valeur binaire. Merci
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 25 juil. 2007 à 14:58
1. On ne lit pas un fichier octet par octet et encore moins bit par bit (si c'était fesable). On extrait le fichier au complet dans un buffer puis on le parcoure avec un pointeur ou on lit par bloc de quelque ko voir mo.
2. On n'extrait pas une valeur binaire d'un int tout simplement parce qu'un int est déjà en binaire tout comme un char, un long etc. Si tu veux tester un bit, on utilise les opérateurs binaires &(AND) |(OR) ^(XOR) et autre. Par exemple, pour tester le premier bit d'un char:
if(valeur & 1) printf("Le premier bit de valeur est non nul");
le 3ème bit
if(valeur & 4) printf("Le 3ème bit de valeur est non nul");
le 5ème
if(valeur & 16) printf("Le 5ème bit de valeur est non nul");
etc. etc.
Ceci dit, pour tout un fichier, ça risque de prendre un temps énorme même avec des pointeurs.