begin process at 2013 05 21 19:41:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > BITSET C++ AVEC OPÉRATIONS ARITHMETIQUES : ADDITION, SOUSTRACTION, MULTIPLICATION, DIVISION, MODULO + DIVERS OUTILS

BITSET C++ AVEC OPÉRATIONS ARITHMETIQUES : ADDITION, SOUSTRACTION, MULTIPLICATION, DIVISION, MODULO + DIVERS OUTILS


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :bitwise, big number, operations, bitset, mabit Niveau :Expert Date de création :13/08/2012 Date de mise à jour :14/04/2013 12:38:25 Vu / téléchargé :4 800 / 86

Auteur : jav974

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

 Description

Classe de gestion de grands nombres, templatée sur type de mots et nombres de mots ( types `unsigned` uniquement sauf unsigned long long )

Elle agit comme un nombre (signé ou non)

Gère l'addition, la soustraction, la multiplication, la division, le modulo, les opérateurs binaires ( & | ^ >> << ), les opérateurs de comparaisons (< > <= >= == !=), l'opérateur d'affection et d'autres outils (valeur absolue, opérateur - , retour du contenu du bitset dans le type d'entier choisi (méthode template `to_integer<type>()`), ou sous chaine de caractère format décimal ou binaire).

Cette classe supporte aussi le chainage d'opérations ( "-a + c * d - -42 * c - -d << 2" par exemple.. )


 Conclusion

Les opérations standards sont bien supportées.

 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


 Historique

18 août 2012 01:46:15 :
- rajout de surcharges sur les operateurs ( & | ^ * - +) : supporte l'enchainement d'opérations - ajout des rotations de bits ( << >> ) Code complet avec exemple d'utilisation et Makefile
20 août 2012 15:10:45 :
Rajout de plusieurs opérateurs
22 août 2012 18:51:08 :
La méthode to_string() en format décimal renvoie la réelle représentation du nombre tel qu'il existe dans le champs de bit. La division et le modulo sont présents, mais pas du tout optimisé, encore au stade expérimental.
30 novembre 2012 17:45:19 :
- Optimisation de la divison et du modulo. - Optimisation de la méthode to_integer<>() - Ajout de renvoie d'exception sur les opérations citées plus haut - main d'exemple documenté + Makefile
30 novembre 2012 18:11:52 :
- Correction d'une erreur dans un commentaire.
14 avril 2013 12:38:27 :
- Correction d'un bug critique dans l'opérateur >>= - Grosses optimisations pour tous les opérateurs - add() et division() fonctionnent désormais en itératif et non plus en récursif (qui causaient des stackoverflow sur de trop grands ensembles) - to_string() fournit une représentation plus digeste en DECIMAL et BINARY ( espaces entre les blocs de bits de la taille d'un mot pour le binary, et des '.' en tant que séparateur de milliers dans le decimal ) - plus de 'this->' devant les attributs ou méthodes (changement de norme, ça me parait plus cool maintenant) - code indenté à la emacs

 Sources de la même categorie

Source avec Zip Source avec une capture FONCTIONS EN ACTION par ringo73
CALCUL DE PI AVEC LA BIBLIOTHÈQUE GMP par lann
Source avec Zip Source avec une capture MAGEO3D, POUR GÉRER LES POINTS ET LES VECTEURS DE L'ESPACE R... par pgl10
Source avec Zip Source avec une capture ALGORITHME ACO TOILE D'ARAIGNÉE par RyBeN
Source avec Zip Source avec une capture TRAITEMENT D'IMAGE EN C++, QT par Akham75

Commentaires et avis

Commentaire de CptPingu le 14/08/2012 15:35:27 administrateur CS

Bonjour.

Au niveau du code, pas grand chose à redire, c'est propre, et tu as fait l'effort de commenter.

Quelques remarques, très mineures:
- Pas besoin de "this->" pour appeler un attribut ou une méthode.
- Évite de mettre du code dans un header. Utilise soit un .hh/.cc (ou .hpp/.cpp), ou alors inclus ton code dans un fichier de "code header" (.hxx). Cf mes sources.
- Le code est commenté, mais au format doxygen, ça aurait été un poil mieux (voir la dernière section de: http://0217021.free.fr/portfolio/axel.berardino/articles/ecrire-de-bons-commentaires)
- Pour la méthode "to_string", pour le: "là je sèche, je ne vois pas comment faire sans utiliser de calculs" ce n'est pas très dur. Tu as forcément la valeur, donc tu peux le faire passer dans un std::ostringstream et utiliser celui-ci pour créer la représentation (à coup de std::hex, std::dec, std::oct, etc...).

Sinon, ça aurait été un grand plus, que tu joignes un code complet compilable, avec des exemples commentés d'utilisation de ta classe (un main avec plein d'exemples commentés par exemple).

(J'ai écris plus de critiques qu'autre chose, mais n'en déduis pas que ce que tu as fait n'est pas bien. C'est au contraire propre sur le fond et la forme).

Commentaire de jav974 le 14/08/2012 16:23:36

Bonjour CptPingu,

merci pour ces remarques, j'en tiens compte et posterai le tout modifié,
pour l'heure je viens de trouver un bug dans la multiplication objet-objet, je corrige ça aussi et ça ressemblera enfin à quelque chose.

En ce qui concerne le "this->" pour appeller un attribut ou méthode, disons que c'est une norme que je me suis imposé, ça me facilite la relecture.

Ce code est en fait écrit dans un .hpp, mais n'ayant pas joint de zip ça porte à confusion.. je reviens avec un projet complet et compilable :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Simultaneite des operations [ par Stubbornman ] Je souhaiterais que mon programme fasse plusieurs calculs simultanement afin que le temps d'attente soit plus cours.Est-ce possible? librairie probleme [ par helena123 ] Bonjour, lorsque je lance avec Borland C++ Builder 5, il me dit qu il ne retrouve pas la fonction to_string() alors qu elle est clairement definie dan fread / fwrite [ par helena123 ] Coucou les loulous,je ne comprends pas :j ecris dans un fichier un champs de bits et lorsque je veux le relire et l afficher a l ecran, il me l ecrit lecture fichier binaire [ par helena123 ] Salut les loulous,j utilise cette "structure" de champs de bits que l on peut trouver dans la librairie et qui est tres facile a utiliser mais pour la Bitwise-inclusive-OR assignement [ par Duc ] voila un morceau de code pour expliquer mon probléme:#define VALUE_1 101<font color=blu Bitwise Flag [ par PunkDude424 ] Salut, je travail sur un logiciel et je dois utiliser un Bitwise Flag pour connaitre quel case je dois cocher (il y en a 4)Par exemple:auto = 1manuel cherche aide operations sur chaines [ par Guidelor ] Bonjour,je cherche un site ou je pourrais trouver de l'aide sur toutes les fonctions pour les operations sur les chaines, specialement pour rechercher calculatrice [ par spyke197 ] slt,jdois realiser une calculatrice pour grands nombres qui effectue les operations de base (+,-,*,/)avec vraiment le detail des operations (ex: reten operateur bitwise en c [ par nassim1987 ] bonjour, je travaille sur un programme sur les opérations ensemblistes (union,intersection,différence,etc), je voudrais savoir comment on pourrait fai calculatrice avec une serie d'operations [ par cornyrose ] Bonsoir :) J'ai un projet en c++ à faire. C'est une calculatrice qui peut calculer une serie d'operations (+,*,-,/). Les functions sinus , cosinus, t


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 1,264 sec (4)

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