PHP Conference Nagoya 2025

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

Nenhum valor é retornado.

Exemplos

Exemplo #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

Exemplo #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

Exemplo #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

Nota:

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

adicione uma nota

Notas Enviadas por Usuários (em inglês) 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