Merci de l'explication sjrd ! :P
Ca OK, il n'y y avait pas de soucis ;)Citation:
Envoyé par sjrd
Ca OK aussi, c'est d'ailleurs ce que je trouve le plus logique, même si l'utilisation mémoire est sous-exploité étant donné que l'élément unitaire est l'octet (meme le mot ou double mot ). Booléen = base 2 = [ 0, 1 ].Citation:
Envoyé par sjrd
Au meme titre qu'au niveau du bit, c'est 0 ou 1 sans ambiguité.
OK :ccool: , je me suis fait piégé.Citation:
Envoyé par sjrd
Effectivement, j'ai affecté un 43 constant, qui est simplifié à la compilation par -1.
si on affecte un 43 non constant, le ByteBool reste en 43. J'ai bien saisie :P et constaté également.
[Mode imagination ON]
Mais le fait que le compilo affecte un -1 quand on met une valeur 43 constante implique quelque part qu'il fait une pré-optimisation en vue des opération booléenne future dessus.
Je soupconne que lors d'opération entre Booléen de type ByteBool (ou autre xxxBool), il y a une transformation en -1 systématique des valeurs différentes de 0 et -1 ... ?
Me trompe-je si tu l'as constaté ?
ex: faire un 'ByteBool( 43 ) or ByteBool( 45 )' doit se faire un plus d'instructions asm du coup. (43 et 45 étant non constant). ?
Ce qui implique donc que je vois peu l'intéret d'utiliser un autre système que le couple 0/1 pour Boolean ou 0/-1 pour xxxBool.
[Mode imagination OFF]