gmp_setbit

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

gmp_setbitDefine um bit

Descrição

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

Define para 1 o bit na posição index no número num.

Parâmetros

num

Um objeto GMP.

index

A posição do bit a ser definido. Posição 0 representa o bit menos significativo.

value

True para definir o bit (igual a 1 / ligado); false para limpar o bit (igual a 0 / desligado).

Valor Retornado

Um objeto GMP.

Exemplos

Example #1 Exemplo de gmp_setbit() - posição 0

<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 agora se torna 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

O exemplo acima produzirá:

2 -> 0b10
3 -> 0b11

Example #2 Exemplo de gmp_setbit() - posição 1

<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // posição inicia em 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

O exemplo acima produzirá:

253 -> 0b11111101
255 -> 0b11111111

Example #3 Exemplo de gmp_setbit() - limpando um bit

<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // limpa o bit na posição 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

O exemplo acima produzirá:

255 -> 0b11111111
254 -> 0b11111110

Notas

Note:

Ao contrário da maioria das outras funções GMP, gmp_setbit() deve ser chamada com um objeto GMP que já exista (usando gmp_init() por exemplo). Um objeto não será criado automaticamente.

Veja Também