Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのbin()関数とは?数値を2進数に変換する方法をわかりやすく解説

このチュートリアルでは、Pythonのbin()関数について詳しく解説します。

bin()関数とは

bin()関数は、数値を2進数に変換するための組み込み関数です。引数として整数を渡すと、その数値の2進数表現を文字列として返します。

Pythonにおける2進数は0bで始まります。bin()関数の戻り値にも同様に0bというプレフィックスが付きますが、これは「binary(バイナリ=2進数)」を示す標準的な表記なので、混乱しないようにしましょう。文字列として利用する際に不要な場合は、スライスやformat()関数などで除去することも可能です。

基本的な構文

bin(整数)

例1:数値を2進数に変換する

# 数値を初期化
n = 2
# bin(n)を使って2進数に変換
binary = bin(n)
# 2進数を表示
print(binary)

出力結果

上記のコードを実行すると、以下の結果が得られます。

0b10

例2:より大きな数値の場合

# 数値を初期化
n = 100
# bin(n)を使って2進数に変換
binary = bin(n)
# 2進数を表示
print(binary)

出力結果

上記のコードを実行すると、以下の結果が得られます。

0b1100100

エラーが発生するケース

bin()関数に整数以外のオブジェクト(たとえば文字列)を渡すと、TypeErrorが発生します。以下の例を見てみましょう。

例:文字列を渡した場合

# 文字列を初期化
n = 'Hafeez'
# bin(n)を使って2進数に変換しようとする
binary = bin(n)
# 結果を表示
print(binary)

出力結果

上記のコードを実行すると、以下のようなエラーが発生します。

TypeError                 Traceback (most recent call last)
<ipython-input-4-2184ca5e2014> in <module>
      3
      4 # converting to binary using bin(n)
----> 5 binary = bin(n)
      6
      7 # displaying the binary number
TypeError: 'str' object cannot be interpreted as an integer

このエラーメッセージは「文字列オブジェクトは整数として解釈できない」という意味です。bin()関数を使用する際は、必ず整数型の値を渡すようにしましょう。

まとめ

bin()関数を使えば、整数を簡単に2進数表現の文字列へ変換できます。戻り値には必ず「0b」プレフィックスが付くこと、整数以外を渡すとTypeErrorが発生することの2点に注意してください。また、プレフィックスなしの2進数文字列が必要な場合は、format()関数やf文字列を活用すると便利です。

このチュートリアルについてご不明な点がありましたら、コメント欄でお気軽にお尋ねください。

  1. Pythonで10進数を2進数に変換する方法|再帰処理とbin()関数の実装例

    この記事では、「10進数を2進数に変換する」という問題に対する解決策を、具体的なコード例とともにわかりやすく解説します。 問題の概要 問題: 与えられた10進数の整数を、それに対応する2進数表現へ変換する。 この問題を解くには、大きく分けて2つのアプローチがあります。順番に見ていきましょう。 方法1:再帰を使った実装 10進数を2進数に変換する基本的な考え方は、「数値を2で割り続け、その余りを記録する」ことです。再帰関数を使うと、除算を繰り返しながら余りを自動的に上位の桁から順に出力できます。 サンプルコード def DecimalToBinary(num): if num &g

  2. Pythonで実装するバイナリ挿入ソート:二分探索と挿入ソートを組み合わせた効率的な並べ替え

    はじめにこの記事では、「バイナリ挿入ソート(Binary Insertion Sort)」を使って配列を並べ替えるPythonプログラムについて解説します。名前の通り、このアルゴリズムは二分探索(バイナリサーチ)と挿入ソートの2つの考え方を組み合わせたものです。問題の概要問題文: 整数の配列が与えられます。バイナリ挿入ソートの手法を用いて、この配列を昇順に並べ替えてください。通常の挿入ソートでは、挿入すべき位置を先頭から順番に線形探索で探します。一方、バイナリ挿入ソートでは「すでにソート済みの部分列」に対して二分探索を適用することで、挿入位置を効率的に特定できます。実装例それでは、実際のコード