RANGEMENT POUR VOS BOOLÉENS

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 1 oct. 2004 à 14:10
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

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
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 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
4 oct. 2004 à 19:03
je rejoignais un peu l'idée de gg00xiv...

mais bon....

me suis peut etre trompé...
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
4 oct. 2004 à 09:02
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
4 oct. 2004 à 07:11
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 13
3 oct. 2004 à 14:00
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...
SimonKari Messages postés 80 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 1 octobre 2004
1 oct. 2004 à 18:02
En gros tu ne connais pas la différence entre un type valeur et un type référence...

un peu...
non ???
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
1 oct. 2004 à 14:10
En gros tu as refait l'arraylist...

un peu...
non ???
Rejoignez-nous