Page 1 sur 1

L'opérateur >> (et la fonction RSet)

Publié : lun. 11/juil./2005 17:27
par Dr. Dri
variable >> 1 équivaut à variable / 2
Pourtant si le bit de poids fort (MSB) est à 1, après l'opération il le reste :mad:
(idem pour variable >> n, n > 1)

Code : Tout sélectionner

;Debug une chaîne représentant un entier sur 32 bits
Procedure DebugBin(Value.l)
  Debug RSet(Bin(Value), 32, "0")
EndProcedure

DebugBin($FFFFFFFF) ;devrai afficher 32 "1"
Debug "--------------------------------"
DebugBin($FFFFFFFF<<1) ;devrai afficher 31 "1" et 1 "0"
DebugBin($FFFFFFFF<<2) ;devrai afficher 30 "1" et 2 "0"
DebugBin($FFFFFFFF<<3) ;devrai afficher 29 "1" et 3 "0"
Debug "--------------------------------"
DebugBin($FFFFFFFF>>1) ;devrai afficher 1 "0" et 31 "1"
DebugBin($FFFFFFFF>>2) ;devrai afficher 2 "0" et 30 "1"
DebugBin($FFFFFFFF>>3) ;devrai afficher 3 "0" et 29 "1"
Soit dit en passant (extrait de l'aide fr):
Syntaxe

Result$ = RSet(Chaine$, Longueur [, Caractere$])
Description

Ajuste la chaîne de caractère à droite en y ajoutant des caractères si nécessaire pour atteindre la longueur spécifiée.
Pourtant les caractères sont bien ajoutés à gauche...

Dri :2gunfire: :onfire:

Publié : lun. 11/juil./2005 18:10
par Dr. Dri
oké c'est pas un bug, c'est un opérateur signé...
par contre pour RSet, soit j'ai mal compris, soit l'aide est malm traduite

Dri

Publié : lun. 11/juil./2005 18:11
par Anonyme2
Dr. Dri a écrit :oké c'est pas un bug, c'est un opérateur signé...
par contre pour RSet, soit j'ai mal compris, soit l'aide est malm traduite

Dri
Je suis comme toi Dri, vas voir ce message, ça m'embrouille aussi

http://purebasic.hmt-forum.com/viewtopic.php?t=1936

Publié : mar. 12/juil./2005 22:24
par Fred
J'ai modifié la definition FR de R/LSet() comme indiqué par Nico.