gmp_setbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_setbitSet bit

Descrierea

gmp_setbit ( GMP $num , int $index , bool $value = true ) : void

Sets bit index in num.

Parametri

num

The value to modify.

Un număr GMP sub formă de resource în PHP 5.5 și anterior, un obiect GMP în PHP 5.6 și ultrior, su un șir de caractere numeric atunci când acesta poate fi convertit într-un număr.

index

The index of the bit to set. Index 0 represents the least significant bit.

value

True to set the bit (set it to 1/on); false to clear the bit (set it to 0/off).

Valorile întoarse

Un număr GMP sub formă de resource în PHP 5.5 și anterior, sau obiect GMP în PHP 5.6 și ulterior.

Exemple

Example #1 gmp_setbit() example - 0 index

<?php
$a 
gmp_init("2"); //
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\n";
gmp_setbit($a0); // 0b10 now becomes 0b11
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\n";
?>

Exemplul de mai sus va afișa:

2 -> 0b10
3 -> 0b11

Example #2 gmp_setbit() example - 1 index

<?php
$a 
gmp_init("0xfd");
echo 
gmp_strval($a), ' -> 0b'gmp_strval($a2), "\n";
gmp_setbit($a1); // index starts at 0
echo gmp_strval($a), ' -> 0b'gmp_strval($a2), "\n";
?>

Exemplul de mai sus va afișa:

253 -> 0b11111101
255 -> 0b11111111

Example #3 gmp_setbit() example - clearing a bit

<?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";
?>

Exemplul de mai sus va afișa:

255 -> 0b11111111
254 -> 0b11111110

Note

Notă:

Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP object that already exists (using gmp_init() for example). One will not be automatically created.

A se vedea și

add a note add a note

User Contributed Notes 1 note

up
0
bluej100@gmail
17 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