begin process at 2012 02 13 00:39:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > MANIPULER DES CHAINES DE BITS FACILEMENT

MANIPULER DES CHAINES DE BITS FACILEMENT


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :structure, bit, chaine, binaire Niveau :Débutant Date de création :23/10/2006 Vu / téléchargé :6 673 / 258

Auteur : yann_lo_san

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Initialiser des octets, mots et doubles mots en ayant un acces sur chaque bit individuels.
Cela peut servir à beaucoup de choses, moi c'est en faisant un algo de compression style RLE que j'en ai eu besoin.

Source

  • // Spécification
  • struct OCTET
  • {
  • unsigned msb : 1;
  • unsigned _7 : 1;
  • unsigned _6 : 1;
  • unsigned _5 : 1;
  • unsigned _4 : 1;
  • unsigned _3 : 1;
  • unsigned _2 : 1;
  • unsigned lsb : 1;
  • // Construction
  • OCTET(unsigned char val = 0x00) {set_val_octet(val);}
  • OCTET(bool, bool, bool, bool, bool, bool, bool, bool);
  • OCTET(const OCTET&);
  • // Manipule l'octet
  • void set_val_octet(unsigned char);
  • unsigned get_val_octet();
  • // Pour affichage gui & console
  • const char* set_buf_string(char[]);
  • friend ostream& operator << (ostream&, const OCTET&);
  • };
  • // la structure mot
  • struct MOT
  • {
  • OCTET hiByte;
  • OCTET lowByte;
  • MOT(unsigned short w = 0x0000) : hiByte(HIBYTE(w))
  • , lowByte(LOBYTE(w)) {}
  • // Wrapper affichage (pour ne pas passer plusieurs fois par l'octet)
  • const char* affiche_mot(char lpBuffer[]);
  • };
  • // la structure doubleMot
  • struct DOUBLEMOT
  • {
  • MOT hiWord;
  • MOT lowWord;
  • DOUBLEMOT(unsigned int d = 0x00000000) : hiWord(HIWORD(d))
  • , lowWord(LOWORD(d)) {}
  • // Wrapper affichage (pour ne pas passer plusieurs fois par le mot)
  • const char* affiche_doublemot(char lpBuffer[]);
  • };
// Spécification

struct OCTET
{
 	unsigned msb : 1;
	unsigned _7  : 1;
	unsigned _6  : 1;
	unsigned _5  : 1;
	unsigned _4  : 1;
	unsigned _3  : 1;
	unsigned _2  : 1;
	unsigned lsb : 1;

	// Construction
	OCTET(unsigned char val = 0x00) {set_val_octet(val);}
	OCTET(bool, bool, bool, bool, bool, bool, bool, bool);
	OCTET(const OCTET&);

	// Manipule l'octet
	void set_val_octet(unsigned char);
	unsigned get_val_octet();

	// Pour affichage gui & console
	const char* set_buf_string(char[]);
	friend ostream& operator << (ostream&, const OCTET&);
};

// la structure mot

struct MOT
{
	OCTET hiByte;
	OCTET lowByte;

	MOT(unsigned short w = 0x0000) : hiByte(HIBYTE(w))
					, lowByte(LOBYTE(w)) {} 

	// Wrapper affichage (pour ne pas passer plusieurs fois par l'octet)
	const char* affiche_mot(char lpBuffer[]);
};


// la structure doubleMot 

struct DOUBLEMOT
{
	MOT hiWord;
	MOT lowWord;

	DOUBLEMOT(unsigned int d = 0x00000000) : hiWord(HIWORD(d))
						, lowWord(LOWORD(d)) {}

	// Wrapper affichage (pour ne pas passer plusieurs fois par le mot)
	const char* affiche_doublemot(char lpBuffer[]);
};


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture [C++/WIN32] RECHERCHE DE FUITES DE MEMOIRE
Source avec Zip Source avec une capture PIECHART SUR DIALOG SANS RESSOURCE
Source avec Zip Source avec une capture [C++/WIN32] TYPEDEF_VIEWER (CONTROLES ETENDUS)
Source avec Zip EFFET GRAPHIQUE DIRECTDRAW
Source avec Zip Source avec une capture [C++/WIN32] COMPRESSEUR/DECOMPRESSEUR LZW

 Sources de la même categorie

Source avec Zip SCHEDULER RR FIFO par yvesB87
Source avec Zip ALGORITHMES RÉCURSIFS VS ALGORITHMES ITÉRATIFS par yvesB87
Source avec Zip Source avec une capture C++ FORMAT D'IMAGE AVEC QT par pop70
Source avec une capture EXEMPLE DE POINTEURS DE FONCTION par pop70
Source avec Zip Source avec une capture [C++] CLASS REGISTER par Miwik

 Sources en rapport avec celle ci

FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel
Source avec Zip [C] WD_STRING V2.2 par cyberripper
Source avec Zip [C] WD_STRING V1.9 par cyberripper
TECHNIQUE SIMPLE DE CONVERSION BINAIRE DÉCIMAL par DarthKhaos

Commentaires et avis

Commentaire de tibur le 24/10/2006 10:47:51

Hello
Tu peux aussi t'interesser à std::bitset de la STL.
(http://www.sgi.com/tech/stl/bitset.html)
tib.

Commentaire de yann_lo_san le 24/10/2006 15:47:56

Effectivement, j'avais pas utilisé ce header <bitset> avant, mais c'est exactement ce que je cherchais. Merci pour l'info.
(ps : Je ne suis pas un pro du c++, c'est pour ça que j'aime bien ce site. )

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

récupérer chaque bit d'une variable binaire [ par nixon666 ] BJJe me pause une question dans un programme de supervision utilisant le language C : pour ceux qui connaissent il s'agit du programme WinCC. Dans ce Acces a chaque bit d'un nombre binaire [ par djemmy ] Je dois obtenir, à partir de 4 nombres décimals(compris entre 0 et 15), les 4 nombre en binaire correspondants. De ces nombres binaires je dois en fab Conversion décimale => binaire [ par nicolas66 ] Bonsoir tlm,j'ai un pb un une ptite fonction pas très compliquée à mon avis :char * itob( int n ){ char * chaine; int i = 0; while ( n &gt; 0 ) { *(c Ecrire en binaire dans un fichier [ par pheno ] Bonjour Je dois réaliser un tp en C sur la compression avec la méthode Huffmanj ai construit l arbre et je récupère le chemin dans une chaine de carac chaine binaire en chaine hexa [ par thomas59553 ] bonjour a tous ;)je cherche une methode permettant de convertir une chaine binaire en une chaine hexale contenu de la chaine binaire est deja verifiee fichier binaire [ par stivi_45 ] Bonjour a tous, j'ai une petite question, je travaille sur un fichier binaire en c.Je stocke des informations dans ce fichier avec une structure : typ Structure des fichiers mp3 [ par mop666 ] salut, j aimerais faire un logiciel a lacon pour remplir les id3 de mes fichiers mp3...quelqu un sait il comment un fichier mp3 est organisé (entete d Probleme de sauvegarde d'une structure dans un fichier binaire [ par issoux ] Bonsoir, voila j'encode des etudiants + matricule + cotes&nbsp; (tous des champs d'une structure)les cotes et les matricules sont sauv&#233;s correcte conversion d'une chaine type "01001000" en binaire [ par brennyboy ] Bonjour &#224; tous !J'aimerais savoir comment passer d'une chaine de 8 caracteres contenant seulement de 0 et des 1, au chiffre d&#233;cimal correspo Ecriture Fichier Binaire bit a bit [ par nobpn ] Bonjour, Je souhaiterai ecrire dans un fichier bianire bit a bit. Je m'explique : il s'agit de compression : je recupere un tablo de int = les bits


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,284 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales