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.
C++ (@++)