Résolu : C : Comment lire un fichier bit par bit
Forum Programmation : Résolu : C : Comment lire un fichier bit par bit
Bonjour,
J'aimerais savoir comment faire pour lire un fichier bit par bit et aussi écrire dans celui-ci bit par bit en C ?
Salut Firelink !
| Citation : J'aimerais savoir comment faire pour lire un fichier bit par bit et aussi écrire dans celui-ci bit par bit en C ? |
Simple, il te faut un désassembleur.
Je n'y connais rien d'autre... lol
Tchooooo :-P :-P :-P
Tiens voila :
Code :
|
Ecrit avec le ofstream !
Scuze jvien de relire ton message le code d'avant ne fonctionnera qu'en C++
Voici une solution en C :
Code :
|
| Citation :
|
Salut Dilibouille,
J'aimerais le nom d'une focntion qui soit capable de lire un fichier bit par bit, pas un programme ! ;-)
| Citation :
|
Salut MouT59,
Ton code lit un fichier mot par mot et non bit par bit ;-)
Et ben il te suffit de transcrire le mot en bit !
Et comment faire ? :-D
Il faut lire octet par octet avec par exemple des fread().
Ensuite sur chaque octet, tu peut aisément lire la suite des 8 bits en utilisant des masques binaires.
Houla ! Je suis un débutant moi ! :-D
Alors je lis octet par octet avec fread(), comment j'utilise cette fonction ?
| Citation : Ensuite sur chaque octet, tu peut aisément lire la suite des 8 bits en utilisant des masques binaires. |
Masques binaires ?!
Tu peux m'expliquer ? :-D
creuse du coté de la fonction
fgetc();
cette fonction prend en paramètre un fichier ou flux, et renvoi un caractère
la premiere fois qu'elle est apelé elle revoi le 1er caractère, la deuxième fois elle revoit le deuxième, ect...,
enfin c'est a creuser
Ouais mais après comment je fais pour décomposer en octet et appliquer des masques binaires ?
je numérote les bits en partant de la gauche en commançant à 0 (7,6,5,4,3,2,1 et 0)
La liste de masques:
00000001b = 0x01 = 1
00000010b = 0x02 = 2
00000100b = 0x04 = 4
00001000b = 0x08 = 8
00010000b = 0x10 = 16
00100000b = 0x20 = 32
01000000b = 0x40 = 64
10000000b = 0x80 = 128
donc si tu veux savoir si le premier bit est à 0 ou 1, tu fais un ET binaire (dont le résultat est, qu'un bit est mis à 1, si le bit du nombre ET le bit du masque sont à 1)
donc il suffit de tester:
Code :
|
Je crois que je vais attendre avant de me lancer dans les bit, c'est trop difficile à comprendre !
J'ai testé le code que tu m'as donné, et quelque soit la valeur de nombre (long), tous les bits valent 1...
Merci de votre aide !
Bye
C'est sur faut pas précipité les choses c'est en apprenant qu'on apprend lol !
Il y a 2104 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

CRicky