Lecture/écriture bit à bit

Le
Guillaume
Bonjour à tous,

auriez-vous connaissance d'une petit bibliothèque permettant la
lecture/écriture bit à bit? Par exemple, écrire tel nombre avec 3
bits, puis un autre avec 11 bits, etc.

Merci.

- Guillaume -
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mickaël Wolff
Le #21556761
Guillaume a écrit :
auriez-vous connaissance d'une petit bibliothèque permettant la
lecture/écriture bit à bit? Par exemple, écrire tel nombre avec 3
bits, puis un autre avec 11 bits, etc.



std::bitset ?

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
MGN
Le #21604541
auriez-vous connaissance d'une petit bibliothèque permettant la
lecture/écriture bit à bit? Par exemple, écrire tel nombre avec 3
bits, puis un autre avec 11 bits, etc.



std::bitset ?


AMHA, tu ne peux pas lire/écrire bit à bit, au minimum un char...
mais je ne suis pas sûr de bien comprendre ta question.
Mickaël Wolff
Le #21604741
MGN a écrit :

AMHA, tu ne peux pas lire/écrire bit à bit, au minimum un char...
mais je ne suis pas sûr de bien comprendre ta question.



Avant de dire des conneries, tu pourrais comprendre la question et
lire la documentation concernant ma réponse ? À mon avis, il veut
quelque chose dans ce goût là :

=== 8< ==
#include <iostream>
#include <bitset>
#include <string>

int main()
{
typedef std::bitset<10> my_bitset ;
using std::cout ;
using std::endl ;
using std::string ;

my_bitset mask(string("0011001100")) ;
my_bitset value(string("1111111111")) ;
my_bitset masked(0) ;
masked = value & mask ;

cout << "Mask: " << mask.to_string() << endl ;
cout << "Value: " << value.to_string() << endl ;
cout << "Masked value: " << masked.to_string() << endl ;

mask.set(5, true) ; // je pense que c'est ça qu'il veut
masked = value & mask ;
cout << "Masked value: " << masked.to_string() << endl ;
}
=== >8 ==
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
MGN
Le #21607661
Avant de dire des conneries, tu pourrais comprendre la question et
lire la documentation concernant ma réponse ? À mon avis, il veut quelque
chose dans ce goût là :


merci pour ton amabilité naturelle...
Michael Doubez
Le #21614811
On 21 avr, 23:21, Mickaël Wolff
MGN a crit :

> AMHA, tu ne peux pas lire/ crire bit bit, au minimum un char...
> mais je ne suis pas s r de bien comprendre ta question.

   Avant de dire des conneries, tu pourrais comprendre la question et
lire la documentation concernant ma r ponse ? mon avis, il veut
quelque chose dans ce gout la :



AMHA, il veut écrire un flux de bit binaire, pas texte.
Quelque chose comme ça:
http://assassinationscience.com/johncostella/bitstream/

[snip]



--
Michael
James Kanze
Le #21623321
On Apr 21, 9:47 pm, "MGN"
>> auriez-vous connaissance d'une petit bibliothèque
>> permettant la lecture/écriture bit à bit? Par exemple,
>> écrire tel nombre avec 3 bits, puis un autre avec 11 bits,
>> etc.

> std::bitset ?

AMHA, tu ne peux pas lire/écrire bit à bit, au minimum un
char...



Ça dépend. Ça dépend du périphérique, et ça dépend du nivea u
logique. Au niveau physique le plus bas, sur un disque, on ne
peut écrire que des secteurs, par exemple. Mais le SE fournit
une abstraction supérieur, qui permet l'écriture et la lecture
des octets (sur la plupart des systèmes). Si j'ai bien compris
la question, le posteur initial cherchait l'implémentation d'une
abstraction qui permettrait l'écriture et la lecture au niveau
des bits.

Je n'en connais pas de disponible, déjà fait. En implémenter
une, en revanche, n'est pas sorcier, mais l'implémentation
« logique » la plus simple risque d'être assez lente. (D'après
mes expériences, il y a pas mal d'années.) Enfin, le principe,
c'est plus ou moins le même qui sert au système pour écrire des
octets dans un secteur : on maintient une position logique en
bits, où on écrit ou lit, et on gère le buffer. Le problème,
c'est la performance, parce qu'au moins d'après mes expériences,
écrire 11 bits bit à bit, ça risque d'exiger beaucoup du temps
CPU. En général, il faudrait s'arranger pour écrire le maximum
possible de bits (dans un octet, ou un mot) d'un coup.

Quant à std::bitset, je ne vois pas trop où il pourrait y être
utile.

--
James Kanze
Publicité
Poster une réponse
Anonyme