pourquoi utiliser 0xffff sur 65535
J'ai vu quelques script PHP qui utilise 0xffff dans mt_rand(0, 0xffff)
. Je ne echo 0xffff;
et les résultats de 65535. Est-il de l'importance de l'utilisation de ce 0xffff? Et aussi qu'est-ce que cela?
source d'informationauteur fishcracker
Vous devez vous connecter pour publier un commentaire.
La notation hexadécimale
0xffff
il est clair que tous les bits du nombre sont1
. Le65535
est le même nombre, mais la représentation binaire n'est pas aussi évident. C'est seulement un nombre. Ainsi, de cette façon d'écrire les nombres ont des sémantiques différentes.Par exemple, si vous voulez déclarer que le maximum de la valeur d'une variable doit être 65535, alors il est préférable de l'exprimer comme ceci:
Parce que qui le rend facile pour l'homme de se comparer à d'autres valeurs comme 65500 (
< $max_value
) ou 66000 (> $max_value
).Au contraire pour les champs de bits.
Cela ne me dites pas que tous les bits sont un (alors qu'en fait ils le sont).
Ce n': Chaque chiffre hexadécimal est synonyme de quatre bits, et un
F
signifie quatre 1-bits. Donc0xFFFF
est0b1111111111111111
en binaire.La notation hexadécimale est utilisé lorsque le programmeur veut, il est clair que la représentation binaire est d'importance, peut-être plus importante que l'exacte valeur numérique.
C'est juste la notation hexadécimale de 65535. Il n'y a pas de différence importante entre les deux dans le contexte que vous avez fourni, mais il est plus facile de se souvenir "0, x et quatre f caractères" de 65535.
Si votre code est fait binaires manipulations, en utilisant les valeurs en hexadécimal comme c'est beaucoup plus facile à comprendre dans le contexte de la comparaison avec décimale; bien que je ne considère pas la fonction mt_rand comme l'un de ces contextes (d'autant que la limite inférieure est décimal et c'est seulement à la limite supérieure que l'hex dans votre exemple)