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

Archive.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

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

Message 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:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

J'ai modifié la definition FR de R/LSet() comme indiqué par Nico.
Répondre