【Python】 8進数の使い方を解説「数値/文字列/変換/出力」

8進数の扱い方は初心者にとっては少し難しいかもしれませんが、理解することでプログラミングの幅が広がります。

この記事では、8進数の基本的な概念から、Pythonでの8進数の扱い方までをわかりやすく解説していきます。

サンプルコードも含めて説明するので、初心者の方でも安心して学ぶことができます。

ぜひ、この機会に8進数の扱い方をマスターしましょう。

目次から探す

8進数とは

8進数は、0から7までの8つの数字を使って数を表現する方法です。

10進数が私たちが普段使っている数の表現方法であるのに対し、8進数はコンピューターやプログラミングの世界でよく使われます。

この章では、8進数の基本概念と、他の数制度との違いについて説明します。

8進数の基本概念

8進数では、各桁が0から7までの数字で表されます。

例えば、10進数での 9 は8進数では 11 と表現されます。

これは、8進数では8を1桁で表現できないため、次の桁に繰り上げる必要があるからです。

8進数の数をPythonで扱うには、数値の前に0o(0とアルファベットの o )を付けます。

以下の例では、8進数の 11 と10進数の 9 が等しいことを示しています。

octal_number = 0o11
decimal_number = 9

if octal_number == decimal_number:
    print("8進数の11は、10進数の9と同じです。")
8進数の11は、10進数の9と同じです。

8進数と他の数制度との違い

8進数以外にも、2進数や16進数など、さまざまな数制度が存在します。

それぞれの数制度は、扱う数字の範囲が異なります。

使用可能な数字主な用途
2進数(バイナリ)0と1コンピューターの基本的な動作原理に関連しています。
8進数(オクタル)0から7コンピューターのメモリーやファイルパーミッションの表現に使われます。
10進数(デシマル)0から9私たちが普段使っている数の表現方法です。
16進数(ヘキサデシマル)0から9までの数字と、AからFまでのアルファベットカラーコード(#FFFFFFなど)

それぞれの数制度は、特定の目的や状況に応じて使い分けられます。

プログラミングでは、これらの数制度を理解し、適切に使い分けることが重要です。

Pythonでの8進数の表現方法

Pythonで8進数を扱う方法は主に2つあります。

まずは8進数リテラルを使った方法と、int関数を使った方法です。

それぞれの方法について詳しく見ていきましょう。

8進数リテラルの書き方

Pythonでは、8進数リテラルを表現するために、数値の前に0o(0と小文字のオー)を付けます。

# 8進数リテラルの例
octal_number1 = 0o10  # 8進数の10(10進数で8)
octal_number2 = 0o123 # 8進数の123(10進数で83)

print(octal_number1)  # 8
print(octal_number2)  # 83
8
83

このように、0oを数値の前に付けることで、その数値が8進数であることを示すことができます。

int関数を使った8進数の生成

もう一つの方法として、int関数を使って8進数を生成することができます。

int関数は、第1引数に数値を表す文字列、第2引数に基数(数制度)を指定することで、その数値を10進数に変換してくれます。

# int関数を使った8進数の生成
octal_str1 = "10"
octal_str2 = "123"

octal_number1 = int(octal_str1, 8)  # 8進数の10(10進数で8)
octal_number2 = int(octal_str2, 8)  # 8進数の123(10進数で83)

print(octal_number1)  # 8
print(octal_number2)  # 83
8
83

このように、int関数を使って8進数を表現することもできます。

どちらの方法を使っても、8進数を扱うことができるので、自分にとって使いやすい方法を選んでください。

8進数と他の数制度の変換

8進数と他の数制度(10進数や16進数)の変換方法について解説します。

Pythonを使って、簡単に数値を変換する方法を学びましょう。

8進数から10進数への変換

8進数の文字列を10進数に変換するには、 int() 関数を使います。

第1引数に8進数の文字列を、第2引数に基数(8)を指定することで、10進数に変換できます。

octal_number = "123"
decimal_number = int(octal_number, 8)
print(decimal_number)  # 出力: 83
83

この例では、8進数の123を10進数の83に変換しています。

8進数から16進数への変換

8進数の文字列を16進数の文字列に変換するには、まず8進数を10進数に変換し、次に10進数を16進数に変換します。

一見難しく感じますが、int() 関数と hex() 関数を使って簡単に変換できます。

octal_number = "123"
decimal_number = int(octal_number, 8)
hexadecimal_number = hex(decimal_number)
print(hexadecimal_number)  # 出力: '0x53'
0x53

この例では、8進数の123を16進数の53に変換しています。

10進数から8進数への変換

10進数を8進数の文字列に変換するには、 oct() 関数を使います。

引数に10進数の数値を指定することで、8進数の文字列に変換できます。

decimal_number = 83
octal_number = oct(decimal_number)
print(octal_number)  # 出力: '0o123'
0o123

この例では、10進数の83を8進数の123に変換しています。

16進数から8進数への変換

16進数を8進数に変換するには、まず16進数を10進数に変換し、次に10進数を8進数に変換します。

int() 関数と oct() 関数を使って変換できます。

hexadecimal_number = "53"
decimal_number = int(hexadecimal_number, 16)
octal_number = oct(decimal_number)
print(octal_number)  # 出力: '0o123'
0o123

この例では、16進数の53を8進数の123に変換しています。

これらのように、Pythonでは簡単に数値を変換することができます。

これらの変換方法を活用して、さまざまな数値演算を行いましょう。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す