(PHP 4 >= 4.0.4, PHP 5)
gmp_setbit — Modifie un bit
&$a
, int $index
[, bool $bit_on
= true
] )
Modifie le bit index
dans a
.
a
La valeur à modifier.
Il peut être soit une ressource GMP, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.
index
L'index de l'octet à définir. L'index 0 représente l'octet le moins significatif.
bit_on
TRUE
pour définir l'octet (défini à 1/on) ; FALSE
pour le ré-initialiser (défini à 0/off).
Une ressource GMP.
Exemple #1 Exemple avec gmp_setbit() - index 0
<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 devient maintenant 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
L'exemple ci-dessus va afficher :
2 -> 0b10 3 -> 0b11
Exemple #2 Exemple avec gmp_setbit() - index 1
<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index commence à 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
L'exemple ci-dessus va afficher :
253 -> 0b11111101 255 -> 0b11111111
Exemple #3 Exemple avec gmp_setbit() - annule un octet
<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>
L'exemple ci-dessus va afficher :
255 -> 0b11111111 254 -> 0b11111110
Note:
Contrairement à la plupart des autres fonctions GMP, gmp_setbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.