RANGEMENT POUR VOS BOOLÉENS

Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
- - Dernière réponse : bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
- 5 oct. 2004 à 10:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26505-rangement-pour-vos-booleens

Afficher la suite 
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
J'ai pas trop compris ce que ton code est censé faire, mais je vais répondre ce qu'on ma répondu la dernière fois que j'ai posté une source sur des tableaux de bool:

BitArray !

;-)
Arthenius
Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
11 -
je rejoignais un peu l'idée de gg00xiv...

mais bon....

me suis peut etre trompé...
Arthenius
Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
11 -
en gros j'ai du lire en diagonale... :o)))
Xya
Messages postés
103
Date d'inscription
lundi 8 juillet 2002
Statut
Membre
Dernière intervention
24 novembre 2005
-
Tu peux encore améliorer un peu le code pour accéder et modifier un bit dans la liste, par exemple en utilisant les opérateurs de décalage << et >> au lieu de Math.Pow, et les opérateurs binaires |= et &= au lieu de += et -=.
Par exemple, voilà un extrait d'une de mes classes qui a à peu près le même but que ta structure boolz: (data est le tableau d'uint dans lequel les bits sont stockés)

private bool GetBit( uint index )
{
return ((data[(int)(index / 32)] & (1 << (int)(index % 32))) != 0);
}
private void SetBit( uint index, bool @value )
{
if( @value )
{
data[(int)(index / 32)] |= (uint)(1 << (int)(index % 32));
}
else
{
data[(int)(index / 32)] &= ~(uint)(1 << (int)(index % 32));
}
}
gg00xiv
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
12 -
Tant qu'à faire dans le détails, tu pourrais utiliser l'implémentation de l'interface IList, comme ca, tu aurais une Collection (pour booleens) sur laquel tu pourrais utiliser un foreach et puis bien plus complète.

Remarque: avec l'arrivée de Whidbey et les collections typées, ce genre de code ne sera plus nécessaire...