Pythonで10進数を2進数・8進数・16進数に変換する方法をわかりやすく解説
Pythonには、10進数の整数を2進数・8進数・16進数に変換するための組み込み関数が標準で用意されています。それぞれ以下の関数を使用します。
2進数: bin() 8進数: oct() 16進数: hex()
これらの関数は、引数に整数を渡すだけで、対応する基数の文字列表現を文字列として返してくれます。非常にシンプルで直感的に使えるのが特徴です。
基本的な使い方
実際に、10進数の「27」をそれぞれの進数に変換してみましょう。
decimal = 27 print(bin(decimal), "in binary.") print(oct(decimal), "in octal.") print(hex(decimal), "in hexadecimal.")
実行結果
上記のコードを実行すると、次のような出力が得られます。
0b11011 in binary. 0o33 in octal. 0x1b in hexadecimal.
出力結果の接頭辞について
出力を見ると、各変換結果には「0b」「0o」「0x」という接頭辞(プレフィックス)が付いています。これらはPythonにおける各進数リテラルを表す記号です。
- 0b: 2進数(binary)であることを示します
- 0o: 8進数(octal)であることを示します
- 0x: 16進数(hexadecimal)であることを示します
接頭辞を除いた数値だけを取得したい場合
接頭辞が不要な場合は、スライスを使って先頭の2文字を取り除くか、format() 関数や f文字列を利用すると便利です。
decimal = 27 # スライスで接頭辞を除去 print(bin(decimal)[2:]) # 11011 print(oct(decimal)[2:]) # 33 print(hex(decimal)[2:]) # 1b # format() を使う方法 print(format(decimal, 'b')) # 11011 print(format(decimal, 'o')) # 33 print(format(decimal, 'x')) # 1b
このように、Pythonでは組み込み関数を活用することで、進数変換を簡単かつ効率的に行うことができます。
-
Pythonで10進数を2進数に変換する方法|再帰処理とbin()関数の実装例
この記事では、「10進数を2進数に変換する」という問題に対する解決策を、具体的なコード例とともにわかりやすく解説します。 問題の概要 問題: 与えられた10進数の整数を、それに対応する2進数表現へ変換する。 この問題を解くには、大きく分けて2つのアプローチがあります。順番に見ていきましょう。 方法1:再帰を使った実装 10進数を2進数に変換する基本的な考え方は、「数値を2で割り続け、その余りを記録する」ことです。再帰関数を使うと、除算を繰り返しながら余りを自動的に上位の桁から順に出力できます。 サンプルコード def DecimalToBinary(num): if num &g
-
Pythonで10進数を2進数に変換する方法|再帰と組み込み関数の2つのアプローチ
この記事では、10進数で表された数値を2進数に変換するPythonプログラムについて、その考え方と具体的な実装方法をわかりやすく解説します。 問題文 ある整数が与えられたとき、その数値を2進数に変換します。例えば、10進数の「35」は2進数では「100011」と表現されます。 アプローチ1:再帰を使った解法 再帰処理を利用すると、シンプルなコードで10進数を2進数に変換できます。基本的な流れは以下の擬似コードのとおりです。 DecToBin(num): if num > 1: &n