Syntaxe du >> ?

gregoire

New member
Bonjour,
Je ne trouve pas la syntaxe en basic pour faire un décalage à droite de 4 bits :confused:
car ce n'est pas suffisamment détaillé dans le "manuel 2".
Si qq peut me dire... ce serai nickel.
Merci
Greg
 

Aries

New Member
>> ne fonctionnera que pour les Picaxe X2. Ce sont des exemples :
b0 = b1 >> 4
b0 = b0 >> 4
w0 = w0 >> 4

Je suggère toujours que vous utilisiez le simulateur pour tester tout ce que vous ne comprenez pas. Il trouvera des erreurs dans votre syntaxe et vous pourrez imprimer les résultats
 

gregoire

New member
Merci à vous,
Effectivement, je viens de m'apercevoir que >> ne fonctionne pas avec un 18m2
C’était plus élégant à écrire que /16 !
Autre question:
Avez-vous des exemples pour faire des conversions "BinToBCD" et "BCDToBin" car le 18m2 ne les accepte pas non plus ?
Greg
 

Aries

New Member
C'est une nouvelle question pour moi. J'ai écrit ces macros pour faire la conversion :
Code:
#macro BIN2BCD(result,value)
result = value / 1000 // 10 * 16
result = value / 100 // 10 + result * 16
result = value / 10 // 10 + result * 16
result = value // 10 + result
#endmacro

#macro BCD2BIN(result,value)
result = value / 4096 // 16 * 10
result = value / 256 // 16 + result * 10
result = value / 16 // 16 + result * 10
result = value // 16 + result
#endmacro

Bin2Bcd(w0,9876)
gosub PrintHex
Bcd2Bin(w1,w0)
sertxd(" = ",#w1)

end


PrintHex:
    S_W0 = w0 / 4096 // 16
    sertxd(13,10,#w0," = ",#S_W0)
    S_W0 = w0 / 256 // 16
    sertxd(#S_W0)
    S_W0 = w0 / 16 // 16
    sertxd(#S_W0)
    S_W0 = w0 // 16
    sertxd(#S_W0)
return
Dans chaque cas, la macro ("fonction") prend deux arguments. Le premier est une variable (par exemple, b0 ou w1), le second est une variable ou une valeur. Si vous utilisez une variable d'octet, vous devez limiter vos valeurs à la plage 0-99. Tout ce qui est plus grand est tronqué aux deux chiffres les moins significatifs.
 
Top