gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbitModifie un bit

Description

void gmp_setbit ( resource &$a , int $index [, bool $bit_on = true ] )

Modifie le bit index dans a.

Liste de paramètres

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).

Valeurs de retour

Une ressource GMP.

Exemples

Exemple #1 Exemple avec gmp_setbit() - index 0

<?php
$a 
gmp_init("2"); //
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\n";
gmp_setbit($a0); // 0b10 devient maintenant 0b11
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\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($a2), "\n";
gmp_setbit($a1); // index commence à 0
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\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($a2), "\n";
gmp_setbit($a0false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\n";
?>

L'exemple ci-dessus va afficher :

255 -> 0b11111111
254 -> 0b11111110

Notes

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.

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
0
bluej100@gmail
6 years ago
The third parameter is somewhat confusingly named; it would probably be better described as "$set_state". If true, it sets the bit to 1. If false, it sets the bit to 0. Default is true.

<?php
$num
= gmp_init(1);
gmp_setbit($num, 1);
echo
'gmp_setbit(1, 1): '.gmp_strval($num, 2)."\n"; // 11

$num = gmp_init(1);
gmp_setbit($num, 1, true);
echo
'gmp_setbit(1, 1, true): '.gmp_strval($num, 2)."\n"; // 11

$num = gmp_init(1);
gmp_setbit($num, 0, false);
echo
'gmp_setbit(1, 0, false): '.gmp_strval($num, 2)."\n"; // 0
?>
To Top