Page 1 sur 1

Random($FFFFFFFF)

Publié : lun. 08/août/2005 23:53
par Dr. Dri
la fonction random n'est plus si aléatoire que ca avec cette valeur... chez moi elle ne renvoi que $80000000

Code : Tout sélectionner

RandomSeed( ElapsedMilliseconds() )
For i = 1 To 10
  j = Random($FFFFFFFF)
  Debug Hex(j)
Next i
Dri

Publié : mar. 09/août/2005 6:24
par comtois
Dans l'aide , tu peux lire ça :

Long 4 octets en mémoire ,plage de -2147483648 à +2147483647

et 2147483647 en Hexa , ça donne $7FFFFFFF

Donc si tu mets Random($7FFFFFFF) , c'est la limite possible .

Du moins je pense ?

Publié : mar. 09/août/2005 12:40
par Dr. Dri
Le problème c'est que Random ne renvoie que des valeurs non signées et prend en paramètre un entier signé (un peu comme la fonction Hex) donc toute valeur négative lui fait perdre ses moyens et au final il renvoie justement la valeur négative la plus petite d'un long...

Il serait peut être bien qu'en interne la fonction gère soit tout de facon non-signée soit faire un Abs() sur le paramètre reçu.

Dri

Publié : ven. 12/août/2005 23:38
par Le Soldat Inconnu
la fonction random n'est plus si aléatoire que ca avec cette valeur...
C'est surtout que $FFFFFFFF = -1
Et un radom sur un nombre négatif, ça ne marche pas. Après le debugger rale pas, c'est un choix ou un oubli

De toute façon, un random ne marche pas avec une valeur signée donc forcément, il va renvoyer ce qu'il peut, la pauvre bête :mrgreen: