ビットを設定する

# gmp_setbit

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

gmp_setbit — ビットを設定する

### 説明

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

`num` のビット `index` を設定します。

### パラメータ

`num`

  GMP オブジェクト

  GMP オブジェクト、int、 あるいは数値として解釈可能な string。 文字列の場合、gmp_init() で基数を自動検出するとき (`base` に 0 を指定したとき) と同じ方法で解釈されます。
`index`

  設定するビットのインデックス。0 は最下位ビットを表します。

`value`

  true にするとそのビットを設定し (値を 1/on にし)、 false にするとそのビットをクリアします (値を 0/off にします)。

### 戻り値

値を返しません。

### 例

例1 gmp_setbit() の例 - インデックス 0

    <?php
    $a = gmp_init("2"); //
    echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
    gmp_setbit($a, 0); // 0b10 が 0b11 になります
    echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
    ?>

上の例の出力は以下となります。

    2 -> 0b10
    3 -> 0b11

例2 gmp_setbit() の例 - インデックス 1

    <?php
    $a = gmp_init("0xfd");
    echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
    gmp_setbit($a, 1); // インデックスは 0 から始まります
    echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
    ?>

上の例の出力は以下となります。

    253 -> 0b11111101
    255 -> 0b11111111

例3 gmp_setbit() の例 - ビットのクリア

    <?php
    $a = gmp_init("0xff");
    echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
    gmp_setbit($a, 0, false); // インデックス 0 のビットをクリアします
    echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
    ?>

上の例の出力は以下となります。

    255 -> 0b11111111
    254 -> 0b11111110

### 注意

> 注意:

> 他の大半の GMP 関数とは異なり、gmp_setbit() は必ず既存の GMP オブジェクト (例えば gmp_init() を使用して取得したもの) を使用してコールしなければなりません。 リソースは自動的には作成されません。

### 参考

- gmp_clrbit() - ビットをクリアする
- gmp_testbit() - ビットが設定されているかどうかを調べる

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open