Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

booléen ... binaires ....


Messages recommandés

Posté(e)

bonjour tout le monde !

 

voilà mon problème :

 

je voudrais créer une classe pour représenter des matrices ne contenant que des 0 ou 1 ... je me suis dit que les booléens c t pas mal pour ça ... en plus ça permet d'économiser pas mal de place en mémoire (car mes matrices seront immenses)

 

seulement le problème, c que le comportement de mes matrices ne collent pas vraiment avec le type booléen

par exemple pour mes matrices l'opération "+" est :

1 + 1 = 0

1 + 0 = 1

0 + 1 = 1

0 + 0 = 0

(ce qui revient à travailler avec des entiers modulo 2)

 

or les booléen si je ne m'abuse c'est :

1 + 1 = 1

1 + 0 = 0

0 + 1 = 0

0 + 0 = 0

(le "+" remplace le "et logique" "&&" )

 

et j'ai bien pensé à surcharger l'opérateur + ... mais je me pose des questions sur le bon sens de mon affaire ...

parceque ça transgresse un peu la base de la programmation (logique)... modifier comme ça les booléen ...

 

et comme c'est pour un projet, j'aimerais ne pas faire ce que mon prof appel : "du bidouillage".

 

mais si j'utilise les int, ça multiplie par 4 la place en mémoires et surtout ça m'oblige à travailler modulo 2, ce qui lourd ... (enfin si ya rien d'autre...)

 

voilà ....

qu'est-ce que vous feriez à ma place ?

Posté(e)

Salut,

 

Si tu écris en C++, regarde du côté de la classe standard bitset (#include <bitset>). En basant ta classe sur ce type d'objets, cela pourrait grandement faciliter ton implémentation... Si ton prof est d'accord bien sûr. :P

 

Redéfinir un opérateur ne peut pas être qualifié de bidouille en C++. L'opérateur n'a de signification que vis à vis de l'objet auquel il s'applique. Si l'addition est défini comme cela, alors il est bon de définir l'opérateur s'appliquant à ta classe en conséquence.

 

Lien utile : http://www.roguewave.com/support/docs/sour...ref/bitset.html

Posté(e)

nickel :-(

 

je vais utiliser le xor car il me permet de réutiliser une grande partie de ma classe ...

et pour le bitset... j'ai un peu peur :P !

ça modifie direct les bits ? .... faut pas faire de conneries avec un truc pareil ..; j'attendrais un peu pour m'y mettre :-P

Posté(e)
ça modifie direct les bits ? .... faut pas faire de conneries avec un truc pareil ..; j'attendrais un peu pour m'y mettre :-(

432316[/snapback]

:P Le bitset est un tableau de bits. T'es pas en train de reformater un disque... Cela t'aurais permis de t'appuyer sur une classe standard pour tout ce qui concerne l'adressage de bits individuels.

 

Mais bon si tu as déjà écrit une classe sans ça, inutile de tout recommencer.

 

L'idée de base en prog C++ c'est de ne pas réinventer l'eau tiède quand tout ou une partie de ce que tu veux faire existe déjà dans une des classes standards. Les types qui écrivent ces classes savent ce qu'ils font et ils le font bien.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...