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

Pythonで10進数を2進数・8進数・16進数に素早く変換する方法


Pythonには、10進数の数値を2進数、8進数、16進数といった他の基数へ変換するための便利な組み込み関数が用意されています。例えば、10進数の「19」は、2進数では「10011」、8進数では「23」、16進数では「13」と表現されます。

変換結果には、それぞれ2進数なら「0b」、8進数なら「0o」、16進数なら「0x」というプレフィックス(接頭辞)が自動的に付与されます。この表記を目印にすることで、その数値がどの基数で表されているのかをひと目で判別できるのが特徴です。

サンプルコード

# bin()、oct()、hex() 関数を使用
x = 242
print('The number {} in binary form: {}'.format(x, bin(x)))
print('The number {} in octal form: {}'.format(x, oct(x)))
print('The number {} in hexadecimal form: {}'.format(x, hex(x)))

実行結果

The number 242 in binary form: 0b11110010
The number 242 in octal form: 0o362
The number 242 in hexadecimal form: 0xf2

接頭辞を除いて数値だけを表示する方法

「0b」「0o」「0x」などの接頭辞を付けずに、基数の数値そのものだけを出力したい場合もあります。そんなときは、文字列のスライスや format() 関数の書式指定子を活用すると簡単です。

x = 242

# スライスを使う方法(先頭の2文字を除去)
print(bin(x)[2:])      # 11110010
print(oct(x)[2:])      # 362
print(hex(x)[2:])      # f2

# format() の書式指定子を使う方法
print(format(x, 'b'))  # 11110010
print(format(x, 'o'))  # 362
print(format(x, 'x'))  # f2

このように、Pythonではわずか1行のコードで任意の整数を各基数に変換できます。デバッグ時のビット確認や、低レベルなデータ処理など、さまざまな場面で役立つテクニックなので、ぜひ覚えておきましょう。


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

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

  2. Pythonで10進数を2進数に変換する方法|再帰と組み込み関数の2つのアプローチ

    この記事では、10進数で表された数値を2進数に変換するPythonプログラムについて、その考え方と具体的な実装方法をわかりやすく解説します。 問題文 ある整数が与えられたとき、その数値を2進数に変換します。例えば、10進数の「35」は2進数では「100011」と表現されます。 アプローチ1:再帰を使った解法 再帰処理を利用すると、シンプルなコードで10進数を2進数に変換できます。基本的な流れは以下の擬似コードのとおりです。 DecToBin(num):     if num > 1:      &n