decbin

関数の概要

PHPの decbin 関数は、10進数の整数を2進数の文字列に変換するための関数です。プログラムで2進数表現が必要な時や、ビット演算の結果をわかりやすく表示したい場合に役立ちます。

パラメータの説明

  • int $number : 変換したい10進数の整数を指定します。符号付き整数を渡すことができます。

戻り値

指定した10進数を2進数に変換した結果の文字列を返します。返される値は「0」と「1」からなる文字列で、符号は付かず、正の値はそのまま2進数に変換された文字列が返ります。負の値は2の補数表現に基づきビット列が返されるため、期待と異なる場合があります。

使用例

基本的な使い方

<?php
echo decbin(10); // 出力: 1010
?>

10進数の10を2進数の「1010」に変換しています。非常にシンプルな使い方です。

異なる整数を変換する例

<?php
echo decbin(0);   // 出力: 0
echo "n";
echo decbin(255); // 出力: 11111111
echo "n";
echo decbin(2);   // 出力: 10
?>

0や255など、大小様々な数値を2進数に変換しています。255は8ビットすべてが「1」の状態を示しています。

負の数値を渡した場合の挙動

<?php
echo decbin(-5); // 出力例: 11111111111111111111111111111011(32ビット環境の場合)
?>

負の数を渡すと、PHPのビット演算の性質上2の補数表現を使ったビット列が返ります。2の補数表現が理解できない初心者は、負の値は避けるか絶対値にしてから変換する方法がおすすめです。

関連する関数

  • bindec – 2進数の文字列を10進数に変換する
  • decbin – 10進数を2進数に変換する(本記事の関数)
  • dechex – 10進数を16進数に変換する
  • base_convert – 任意の基数で文字列を変換する(2進数, 8進数, 16進数など)

まとめ

decbinは10進数の整数を手軽に2進数の文字列に変換できる便利なPHP関数です。2進数での処理や表示が必要な場合に役立ち、特にビット操作の理解やデバッグの際に重宝します。負の数値の扱いには注意が必要ですが、基本的には正の整数に使うことで期待通りの動作を得られます。ぜひ実務でも活用してみてください。