Page 1 sur 1

operateur sur les bits en lua ?

Publié : 26 juin 2017, 19:38
par domoserena
bonjour,

j'ai besoin dans un 'event' de travailler sur les bits d'un nombre mais je n'arrive pas à trouver les opérateurs en lua qui fonctionnent ....

J'ai essayé x >> 2 pour décaler à droite de 2 bits, x & 128 pour faire un and entre 2 valeurs, ou | pour le ou mais visiblement ca ne marche pas.
D'après les docs lua sur le net ces opérateurs 'bitwises' devraient pourtant exister.

si je fais
b = 255 & 128
print ( b)
j'ai comme erreur Error: EventSystem: in test: [string "--..."]:28: unexpected symbol near '&'

Ca parait basique comme problème mais je trouve pas.

une idée ?

merci

Re: operateur sur les bits en lua ?

Publié : 27 juin 2017, 08:51
par vil1driver
Salut,

Code : Tout sélectionner

x = x/2²
il te faudra contraindre le résultat pour éviter le débordement..

Re: operateur sur les bits en lua ?

Publié : 27 juin 2017, 15:12
par domoserena
pour le decalage c'est ok à condition de ne prendre que la partie entiere du resultat.

Je voulais surtout connaitre l'etat d'un bit specifique d'un hexa. Comme j'ai pas trouvé les fonctions de base pour faire ca j'ai développé un bout de code :

function round(x)
return x>=0 and math.floor(x+0.5) or math.ceil(x-0.5)
end

function etat(val,no)
x=2^no
val=round(val / 2^no)

if (val % 2 == 0) then
etat1=0
else
etat1=1
end
return etat1
end

exemple : etat(x,5) donne la valeur du 5ème bit (commence à 0)

Ca fait un peu usine a gaz mais j'ai pas trouvé plus simple ....