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
(ゼロとアルファベットの 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
(ゼロと小文字のオー)を付けます。
# 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では簡単に数値を変換することができます。
これらの変換方法を活用して、さまざまな数値演算を行いましょう。